Diferencia entre revisiones de «Idioma eWa»
(No se muestran 40 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
− | + | El '''Idioma eWa''' es un [[Idioma de programación]]. | |
− | + | Bajo este [[idioma]], se forma la familia de [[LeWaS|Lenguajes de Programación eWa]]: [[Lenguaje eWamblador]], el [[Lenguaje eWa]], y el [[Lenguaje eWa++]]. Estas características generalmente se usan tanto para desarrollar los [[LeWaS|lenguajes]] como las [[Soluciones Informáticas]]. | |
+ | [[Archivo:EditorLWS.PNG|thum|right|270px|Resaltador de sintaxis]] | ||
{{VT|Idioma}} | {{VT|Idioma}} | ||
== Símbolos del Idioma eWa == | == Símbolos del Idioma eWa == | ||
− | El '''Idioma eWa''' reserva unos pocos ''' | + | El '''Idioma eWa''' reserva unos pocos '''caracteres básicos''' para detectar sus [[estructuras]]. |
− | '''# ( ) { } " ' | + | '''# ( ) { } " ' , ; : \''' |
=== # === | === # === | ||
− | La '''almohadilla''' ('''#''') está reservada para comunicarse con el [[compilador]]. Las líneas que comienzan con la '''almohadilla''' permiten realizar llamadas a | + | La '''almohadilla''' ('''#''') está reservada para comunicarse con el [[compilador]], y el [[intérprete]] o [[ensamblador]]. Las líneas que comienzan con la '''almohadilla''' permiten realizar llamadas a [[Instrucciones del Compilador de Idioma eWa]] y llamadas [[Primitivas]]. |
=== ( ) === | === ( ) === | ||
Línea 21: | Línea 22: | ||
Las '''llaves''' ('''{}''') se reservan para generar '''funciones temporales''' como conjunto de cero o más instrucciones. Su '''estructura''' es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#FUNCTION'''. | Las '''llaves''' ('''{}''') se reservan para generar '''funciones temporales''' como conjunto de cero o más instrucciones. Su '''estructura''' es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#FUNCTION'''. | ||
− | === " | + | === " " === |
− | Las '''comillas dobles''' ('''"''') se reservan para abrir y cerrar cadena de literales. | + | Las '''comillas dobles''' ('''"''') se reservan para abrir y cerrar '''cadena de literales'''. |
− | + | Se abre con una comilla doble y se cierra con otra comilla doble. Dentro de las cadenas solo se permiten literales, es decir, en primera mano todo son literales aunque pueden ser interpretados más adelante. Su [[estructura]] es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#STRING'''. | |
− | + | === ' y '*... ...*' === | |
− | + | La '''comilla simple ''' ('''<nowiki>'</nowiki>''') se reserva para comentar desde ella hasta el final de la línea (salto de línea o '''\n'''). | |
+ | La '''comilla simple + asterisco''' ('''<nowiki>'*</nowiki>''') se reserva para comentar hasta el siguiente '''asterisco + comilla simple''' ('''<nowiki>*'</nowiki>''') independientemente de los caracteres que se encuentren entre ellos. Es necesario siempre cerrar los '''bloques de comentarios''' de este segundo tipo. Permite, además, cerrar y abrir en función del número de '''asteriscos''' que tenga al abrir, siendo más prioritario cuanto más asteriscos tenga. Unos ejemplos de comentarios ayuda a aclarar las cosas: | ||
− | + | ' este es un comentario de línea que terminará después de este salto de línea | |
− | + | '* este bloque ' no ha terminado todavía, termina tras esto *' | |
− | + | '* este otro bloque no terminará con un exceso de asteriscos, ' y no ahora, | |
− | + | aunque es algo no recomendable. Se recomienda terminar con el número de asteriscos | |
− | + | que sean necesarios para terminar y no hacer más: *****' 'Eso sería poco recomendable *' | |
− | + | '*** aquí comienza un código que espera '''tres-asteriscos + comilla''' para finalizar. | |
− | algo | + | si pongo *' no va a cerrar. Tampoco si pongo ** *' o si pongo **' o, cualquier cosa |
− | que sean necesarios para terminar | + | que no sea ***' |
− | + | '***** | |
− | si pongo * | + | al poner '''comilla + cinco-asteriscos''', si tuviera otro bloque de tres antes |
− | que no sea *** | + | '*** |
− | |||
− | al poner ''' | ||
− | |||
Este bloque estaba antes | Este bloque estaba antes | ||
− | *** | + | ***' |
lo podría englobar junto con más comentarios que estuvieran antes sin preocuparme | lo podría englobar junto con más comentarios que estuvieran antes sin preocuparme | ||
que se me cierre el bloque en un sitio que no controle. Si ese bloque existente | que se me cierre el bloque en un sitio que no controle. Si ese bloque existente | ||
− | cerrara con exceso de asteriscos, se | + | cerrara con exceso de asteriscos, se fastidiaría el invento: habría que abrir con |
más. Por eso abrimos con cinco asteriscos, | más. Por eso abrimos con cinco asteriscos, | ||
− | + | '** | |
− | Este bloque estaba antes | + | Este bloque ****' estaba antes |
− | *** | + | ***' |
− | ya que había un bloque que cerraba con '''cuatro-asteriscos | + | ya que había un bloque que cerraba con '''cuatro-asteriscos + comilla'''. |
− | ***** | + | *****' |
− | + | ' fin de los comentarios | |
=== , === | === , === | ||
− | La '''coma''' (''',''') se reserva para separar argumentos. Se diferencia de un simple espacio ya que gracias a la coma se pueden crear los argumentos vacíos. Junto con el '''espacio''', su '''estructura''' es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#ARGUMENT'''. | + | La '''coma''' (''',''') se reserva para separar argumentos. Se diferencia de un simple '''espacio''' ( ) ya que gracias a la coma se pueden crear los argumentos vacíos; mientras que, por ejemplo, si se ponen dos espacios seguidos, no se genera un argumento vacío. Junto con el '''espacio''', su '''estructura''' es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#ARGUMENT'''. |
=== ; === | === ; === | ||
− | El '''punto y coma''' (''';''') se reserva para separar instrucciones. | + | El '''punto y coma''' (''';''') se reserva para separar instrucciones. Cabe destacar que si se encuentra entre pares de símbolos (por ejemplo los '''paréntesis''', las '''llaves''', o las '''comillas tanto dobles como simples''') se comportará ''exactamente igual'' que una '''coma''' (''','''), salvo en caso de aparecer los dos, en cuyo caso, creará una matriz de argumentos: primero lo separado por ''';''' y por cada uno de esos, argumentos separados por ''','''. |
+ | |||
+ | Por ejemplo, en el bucle for, se pueden usar algunas de estas sintáxis: | ||
+ | '''for'''( '''{'''i = 0'''}''', '''{'''i < longitud'''}''', '''{'''i++'''}''' ){ ... } | ||
+ | '''for'''( i = 0, i < longitud, i++ ){ ... } // esto no es válido porque los argumentos no son funciones. | ||
+ | '''for'''( i = 0; i < longitud, i++ ){ ... } // esto no es válido porque combina separadores ''',''' y ''';'''. | ||
+ | '''for'''( i = 0, i < longitud; i++ ){ ... } // esto no es válido porque combina separadores ''',''' y ''';'''. | ||
+ | '''for'''( i = 0''';''' i < longitud''';''' i++ ){ ... } | ||
=== : === | === : === | ||
− | Los '''dos puntos''' (''':''') se reservan para trabajar con los '''Objetos''' (clase, tipo de dato...) estructurados. Su | + | Los '''dos puntos''' (''':''') se reservan para trabajar con los '''Objetos''' (clase, tipo de dato...) estructurados. Su [[estructura]] es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#OBJECT'''. |
=== \ === | === \ === | ||
Línea 76: | Línea 82: | ||
=== Números === | === Números === | ||
− | Los números son detectados por el '''Idioma eWa''' como '''enteros sin signo'''. Se pueden encontrar en diferentes bases: la decimal ('''1000''' o '''0d1000'''), hexadecimal ('''0x3E8''') o binaria ('''0b1111101000''' o '''10B01000'''). El número '''en base decimal''' que está delante de la '''letra de la base''' indica el '''tamaño''' en número de '''bits''' (salvo si es 0 o no existe, en cuyo caso se toma como si fuera el tamaño de lo que has escrito después de la letra), siendo rellenado por '''0s binarios''' si la letra está en '''minúscula''' y por '''1s binarios''' si está en '''mayúscula'''. Su | + | Los números son detectados por el '''Idioma eWa''' como '''enteros sin signo'''. Se pueden encontrar en diferentes bases: la decimal ('''1000''' o '''0d1000'''), hexadecimal ('''0x3E8''') o binaria ('''0b1111101000''' o '''10B01000'''). El número '''en base decimal''' que está delante de la '''letra de la base''' indica el '''tamaño''' en número de '''bits''' (salvo si es 0 o no existe, en cuyo caso se toma como si fuera el tamaño de lo que has escrito después de la letra), siendo rellenado por '''0s binarios''' si la letra está en '''minúscula''' y por '''1s binarios''' si está en '''mayúscula'''. Su [[estructura]] es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#UINT'''. |
− | == Operadores del Idioma == | + | == Operadores del Idioma eWa == |
El '''Idioma eWa''' tiene reservados los siguientes '''caracteres básicos''' para funcionar como [[operador]]es: | El '''Idioma eWa''' tiene reservados los siguientes '''caracteres básicos''' para funcionar como [[operador]]es: | ||
− | + - * / . = | + | '''+ - * / . = ~ % · | & < > ? ! [ ]''' ¬ ¿ ¡ ´ ` ^ º ª |
− | + | {{CL|Operadores}} | |
+ | {{VT|Operadores Estándares}} | ||
+ | A partir de combinaciones de ellos, se declaran los [[operadores estándares]] del [[Proyecto eWa]] que son los mismos en los diferentes [[LeWaS|Lenguajes de Programación eWa]]. Aunque algunos son ''alias'' de [[funciones]] literales (por ejemplo el operador "'''a + b'''" representa a la [[función]] "'''suma(a,b)'''") que facilitan la programación anidada, sobretodo para la realización de operaciones matemáticas; existen [[operadores]] que implementan [[procedimientos]] puros de forma nativa. | ||
[[Categoría: Idioma eWa]] | [[Categoría: Idioma eWa]] |
Revisión actual del 13:17 7 mar 2012
El Idioma eWa es un Idioma de programación.
Bajo este idioma, se forma la familia de Lenguajes de Programación eWa: Lenguaje eWamblador, el Lenguaje eWa, y el Lenguaje eWa++. Estas características generalmente se usan tanto para desarrollar los lenguajes como las Soluciones Informáticas.
Sumario
Símbolos del Idioma eWa
El Idioma eWa reserva unos pocos caracteres básicos para detectar sus estructuras.
# ( ) { } " ' , ; : \
#
La almohadilla (#) está reservada para comunicarse con el compilador, y el intérprete o ensamblador. Las líneas que comienzan con la almohadilla permiten realizar llamadas a Instrucciones del Compilador de Idioma eWa y llamadas Primitivas.
( )
Los paréntesis (()) se reservan para forzar prioridades entre los parámetros de una expresión, de una forma análoga a su uso en las matemáticas.
{ }
Las llaves ({}) se reservan para generar funciones temporales como conjunto de cero o más instrucciones. Su estructura es, en la definición de estructuras del Compilador de Idioma eWa, #FUNCTION.
" "
Las comillas dobles (") se reservan para abrir y cerrar cadena de literales.
Se abre con una comilla doble y se cierra con otra comilla doble. Dentro de las cadenas solo se permiten literales, es decir, en primera mano todo son literales aunque pueden ser interpretados más adelante. Su estructura es, en la definición de estructuras del Compilador de Idioma eWa, #STRING.
' y '*... ...*'
La comilla simple (') se reserva para comentar desde ella hasta el final de la línea (salto de línea o \n). La comilla simple + asterisco ('*) se reserva para comentar hasta el siguiente asterisco + comilla simple (*') independientemente de los caracteres que se encuentren entre ellos. Es necesario siempre cerrar los bloques de comentarios de este segundo tipo. Permite, además, cerrar y abrir en función del número de asteriscos que tenga al abrir, siendo más prioritario cuanto más asteriscos tenga. Unos ejemplos de comentarios ayuda a aclarar las cosas:
' este es un comentario de línea que terminará después de este salto de línea '* este bloque ' no ha terminado todavía, termina tras esto *' '* este otro bloque no terminará con un exceso de asteriscos, ' y no ahora, aunque es algo no recomendable. Se recomienda terminar con el número de asteriscos que sean necesarios para terminar y no hacer más: *****' 'Eso sería poco recomendable *' '*** aquí comienza un código que espera tres-asteriscos + comilla para finalizar. si pongo *' no va a cerrar. Tampoco si pongo ** *' o si pongo **' o, cualquier cosa que no sea ***' '***** al poner comilla + cinco-asteriscos, si tuviera otro bloque de tres antes '*** Este bloque estaba antes ***' lo podría englobar junto con más comentarios que estuvieran antes sin preocuparme que se me cierre el bloque en un sitio que no controle. Si ese bloque existente cerrara con exceso de asteriscos, se fastidiaría el invento: habría que abrir con más. Por eso abrimos con cinco asteriscos, '** Este bloque ****' estaba antes ***' ya que había un bloque que cerraba con cuatro-asteriscos + comilla. *****' ' fin de los comentarios
,
La coma (,) se reserva para separar argumentos. Se diferencia de un simple espacio ( ) ya que gracias a la coma se pueden crear los argumentos vacíos; mientras que, por ejemplo, si se ponen dos espacios seguidos, no se genera un argumento vacío. Junto con el espacio, su estructura es, en la definición de estructuras del Compilador de Idioma eWa, #ARGUMENT.
;
El punto y coma (;) se reserva para separar instrucciones. Cabe destacar que si se encuentra entre pares de símbolos (por ejemplo los paréntesis, las llaves, o las comillas tanto dobles como simples) se comportará exactamente igual que una coma (,), salvo en caso de aparecer los dos, en cuyo caso, creará una matriz de argumentos: primero lo separado por ; y por cada uno de esos, argumentos separados por ,.
Por ejemplo, en el bucle for, se pueden usar algunas de estas sintáxis:
for( {i = 0}, {i < longitud}, {i++} ){ ... } for( i = 0, i < longitud, i++ ){ ... } // esto no es válido porque los argumentos no son funciones. for( i = 0; i < longitud, i++ ){ ... } // esto no es válido porque combina separadores , y ;. for( i = 0, i < longitud; i++ ){ ... } // esto no es válido porque combina separadores , y ;. for( i = 0; i < longitud; i++ ){ ... }
:
Los dos puntos (:) se reservan para trabajar con los Objetos (clase, tipo de dato...) estructurados. Su estructura es, en la definición de estructuras del Compilador de Idioma eWa, #OBJECT.
\
La barra de escape se reserva para escapar caracteres no imprimibles directamente por los teclados.
Números
Los números son detectados por el Idioma eWa como enteros sin signo. Se pueden encontrar en diferentes bases: la decimal (1000 o 0d1000), hexadecimal (0x3E8) o binaria (0b1111101000 o 10B01000). El número en base decimal que está delante de la letra de la base indica el tamaño en número de bits (salvo si es 0 o no existe, en cuyo caso se toma como si fuera el tamaño de lo que has escrito después de la letra), siendo rellenado por 0s binarios si la letra está en minúscula y por 1s binarios si está en mayúscula. Su estructura es, en la definición de estructuras del Compilador de Idioma eWa, #UINT.
Operadores del Idioma eWa
El Idioma eWa tiene reservados los siguientes caracteres básicos para funcionar como operadores:
+ - * / . = ~ % · | & < > ? ! [ ] ¬ ¿ ¡ ´ ` ^ º ª
A partir de combinaciones de ellos, se declaran los operadores estándares del Proyecto eWa que son los mismos en los diferentes Lenguajes de Programación eWa. Aunque algunos son alias de funciones literales (por ejemplo el operador "a + b" representa a la función "suma(a,b)") que facilitan la programación anidada, sobretodo para la realización de operaciones matemáticas; existen operadores que implementan procedimientos puros de forma nativa.