Herramientas de usuario

Herramientas del sitio


es:manual:ssl

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
es:manual:ssl [2021/06/16 14:55] – [Aspectos sintácticos] rootes:manual:ssl [2021/07/07 17:46] (actual) – [Aspectos semánticos] root
Línea 34: Línea 34:
     round       round  
  
-a las que hay que añadir los identificadores predefinidos.+a las que hay que añadir los identificadores predefinidos. Actualmente no todas las sentencias correspondientes a algunas de estas palabras reservadas están implementadas, algunas están simplemente reservadas para futuros usos.
  
 === Identificadores === === Identificadores ===
Línea 40: Línea 40:
  
     * ''answer''. contiene el texto de la respuesta del alumno. En caso de que la respuesta del alumno sea múltiple la variable ''answer'' contiene una matriz que puede accederse como ''answer[0]'', ''answer[1]'', etc. En ese caso la variable ''answer'' sigue conservando la matriz completa.     * ''answer''. contiene el texto de la respuesta del alumno. En caso de que la respuesta del alumno sea múltiple la variable ''answer'' contiene una matriz que puede accederse como ''answer[0]'', ''answer[1]'', etc. En ese caso la variable ''answer'' sigue conservando la matriz completa.
 +    * ''respuesta'', contiene exactamente lo mismo que la anterior, para poder escribir el código en español.
  
 === Operadores === === Operadores ===
Línea 89: Línea 90:
 </code> </code>
  
-=== Sentencias de asignación === +=== Expresiones === 
-Lo mas destacable de las sentencias de asignación de SSL es que puede asignarse a una variable el valor booleano de una condición+Son prácticamente las mismas que en Javascript, añadiendole el [[wp>Elvis_operator|operador elvis]]. Las variables pueden ser variables simples o matrices de una sola dimensión, en cuyo caso pueden estar indexadas por una expresión.
  
 <code> <code>
-asig: var '=' exp 
-    | var '=' cond 
-    | var '+=' exp 
-    | var '-=' exp 
-    | var '*=' exp 
-    | var '/=' exp 
-    | '++' var 
-    | '--' var 
-    | var '++' 
-    | var '--' 
-    ;  
-     
 exp: exp '+' exp exp: exp '+' exp
    | exp '-' exp    | exp '-' exp
Línea 124: Línea 113:
  
 var: IDENTIFICADOR var: IDENTIFICADOR
-   | IDENTIFICADOR '[' exp ']' 
    ;    ;
-   +</code> 
 + 
 +=== Condiciones === 
 +Son expresiones lógicas que tienen como resultado un valor booleano. 
 + 
 +<code>
 cond: exp '==' exp cond: exp '==' exp
     | exp '!=' exp     | exp '!=' exp
Línea 140: Línea 133:
     | 'false'     | 'false'
     ;       ;  
-       
 </code> </code>
 +
 +=== Sentencias de asignación ===
 +Lo mas destacable de las sentencias de asignación de SSL es que puede asignarse a una variable el valor booleano de una condición
 +
 +<code>
 +asig: var '=' exp
 +    | var '=' cond
 +    | var '+=' exp
 +    | var '-=' exp
 +    | var '*=' exp
 +    | var '/=' exp
 +    | '++' var
 +    | '--' var
 +    | var '++'
 +    | var '--'
 +    ;
 +</code>
 +
 +=== Sentencia if ===
 +
 +<code>
 +sentIf: 'if' '(' cond ')' sent
 +      | 'if' '(' cond ')' sent 'else' sent
 +      ;
 +</code>
 +
 +
 +=== Sentencia while ===
 +
 +<code>
 +sentWhile: 'while' '(' cond ')' sent
 +         ;
 +</code>
 +
 +
 +=== Sentencia do-while ===
 +
 +<code>
 +sentDo: 'do' sent 'while' '(' cond ')'
 +      ;
 +</code>
 +
 +
 +=== Sentencia for ===
 +<code>
 +sentFor: 'for' '(' exp ',' cond ',' exp ')' sent
 +       ;
 +</code>
 +
 +=== Sentencia return ===
 +La sentencia return puede devolver un valor numérico, una cadena de caracteres o bien el valor booleano correspondiente a una expresión.
 +
 +<code>
 +sentFor: 'return' exp 
 +       | 'return' cond
 +       ;
 +</code>
 +
 +
 +=== Sentencia print ===
 +<code>
 +sentPrint: 'print' '(' exp ')' 
 +         ;
 +</code>
 +
 +=== Arrays ===
 +Pueden definirse arrays unidimensionales son la siguiente sintaxis:
 +
 +<code>
 +asig: var '=' '{' listaExp '}'
 +    ;
 +listaExp: listaExp ',' exp
 +        | exp
 +        ;
 +</code>
 +
 +y acceder a sus elementos mediante:
 +
 +<code>
 +var: IDENTIFICADOR '[' exp ']'
 +   ;
 +</code>
 +
 +
 ==== Aspectos semánticos ==== ==== Aspectos semánticos ====
 +
 +El lenguaje no tiene tipos. Cuando se realiza una operación SSL intenta acomodar la semántica de la operación a un posible tipo que infiere de sus operadores. Así por ejemplo, la operación ''x=2+2'', tendrá como resultado ''x=4'' pero la operación ''x='a'+'b''' tendrá como resultado ''x='ab'''.
 +
 +Las operaciones entre números se hacen siempre considerando que los operadores son números reales.
 +
  
es/manual/ssl.1623855309.txt.gz · Última modificación: 2021/06/16 14:55 por root

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki