Diferencia entre revisiones de «Idioma eWa»

De Wiki~eWa
Ir a la navegaciónIr a la búsqueda
 
(No se muestran 31 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
Un [[Idioma|Idioma de programación]] es un conjunto de símbolos y reglas [[sintaxis|sintácticas]] y [[semántica]]s que definen su estructura y el significado de sus '''símbolos''' y '''expresiones'''. Es utilizado para controlar el comportamiento físico y lógico de una [[máquina]].
+
El '''Idioma eWa''' es un [[Idioma de programación]].
  
En el caso particular del '''Idioma eWa''', es el conjunto que caracteriza a los [[LeWaS|Lenguajes de Programación eWa]] como son el [[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]].
+
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 '''caracteres básicos''' o '''pares de caracteres básicos''' para detectar sus [[estructuras]].
+
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 [[Instrucciones del Compilador de Idioma eWa]].
+
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'''.
  
=== " y ' ===
+
=== " " ===
  
Las '''comillas dobles''' ('''"''') se reservan para abrir y cerrar cadena de literales.
+
Las '''comillas dobles''' ('''"''') se reservan para abrir y cerrar '''cadena de literales'''.
  
La '''comilla simple''' ('''<nowiki>'</nowiki>''') se reserva 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'''.
  
Obviamente, si se abre con un tipo de comilla, no se puede cerrar con el otro. Dentro de las cadenas solo se permiten literales, es decir, en primera mano todo son literales aunque pueden ser interpretados más adalente. Su '''estructura''' es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#STRING'''.
+
=== ' y '*... ...*' ===
  
=== // 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:
  
La '''doble barra''' ('''//''') se reserva para comentar desde ella hasta el final de la línea (salto de línea o '''\n''').
+
' este es un comentario de línea que terminará después de este salto de línea
La '''barra asterisco''' ('''/*''') se reserva para comentar hasta el siguiente '''asterisco barra''' ('''*/''') independientemente de los caracteres que se encuentren entre ellos. Es necesario siempre cerrar los '''bloques de comentarios''' de este 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 bloque ' no ha terminado todavía, termina tras esto *'
 
+
  '* este otro bloque no terminará con un exceso de asteriscos, ' y no ahora,
// este es un comentario de línea que terminará después de este salto de línea
+
  aunque es algo no recomendable. Se recomienda terminar con el número de asteriscos
  /* este bloque / no ha terminado todavía, termina tras esto */
+
  que sean necesarios para terminar y no hacer más: *****' 'Eso sería poco recomendable *'
  /* este otro bloque terminará con un exceso de asteriscos, // y no ahora,
+
  '*** aquí comienza un código que espera '''tres-asteriscos + comilla''' para finalizar.
  algo que no es nada recomedable. Se recomienda terminar con el número de asteriscos
+
  si pongo *' no va a cerrar. Tampoco si pongo ** *' o si pongo **' o, cualquier cosa
  que sean necesarios para terminar. *****/ // Eso sería poco recomendable
+
  que no sea ***'
  /*** aquí comienza un código que espera '''tres-asteriscos barra''' para finalizar.
+
  '*****
  si pongo */ no va a cerrar. Tampoco si pongo ** */ o si pongo **/ o, cualquier cosa
+
   al poner '''comilla + cinco-asteriscos''', si tuviera otro bloque de tres antes
  que no sea ***/
+
   '***
  /*****
 
   al poner '''barra cinco-asteriscos''', si tuviera otro bloque de tres antes
 
   /***
 
 
   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 fastiaría el invento: habría que abrir con
+
   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 barra'''.
+
   ya que había un bloque que cerraba con '''cuatro-asteriscos + comilla'''.
  *****/
+
  *****'
  // fin de los comentarios
+
  ' 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 '''estructura''' es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#OBJECT'''.
+
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 '''estructura''' es, en la definición de estructuras del [[Instrucciones del Compilador de Idioma eWa|Compilador de Idioma eWa]], '''#UINT'''.
+
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:
  
  '''+ - * / . = ¬ ~ % · | & < > ¿ ? ¡ ! ^ ´ ` [ ]'''
+
  '''+ - * / . = ~ % · | & < > ? ! [ ]''' ¬ ¿ ¡ ´ ` ^ º ª
  
La única restricción que existe es con el operador '''barra''' ('''/''') que no se puede concatenar con él mismo ('''//''') ni con el '''asterisco''' ('''*''') delante ('''/*''') ni detrás  ('''*/'''), ya que esos resultados son [[símbolo]]s del '''Idioma eWa''' [[Idioma_eWa#.2F.2F_y_.2F.2A..._....2A.2F|reservado]]. Cualquier otra combinación está permitida.
+
{{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 14: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.

Resaltador de sintaxis

Véase también: Idioma

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:

+ - * / . = ~ % · | & < > ? ! [ ] ¬ ¿ ¡ ´ ` ^ º ª

Continúe leyendo: Operadores

Véase también: 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 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.