¡Esta es una revisión vieja del documento!
El lenguaje de script SSL
Para cubir ciertas funcionalidades como el manejo de variables de perfil, variables de sesión, preguntas condiciones, y funciones de evaluación, Siette ha definido su propio lenguaje de programación de scripts, denominado SSL (Siette Script Language).
Es un lenhguaje sencillo, con una sintaxis similar a la familia de C, Java y Javascript, con muchas menos funcionalidades (ya que solo se pretende usar para escribir pequeños trozos de código) y con algunas facilidades añadidas para manejar los ítems y las respuestas de los alumnos. En esta sección no se pretende describir exhaustivamente el lenguaje ni enseñar su funcionamiento. Calquier programador acostumbrado a Java o Javascript entenderá facilmente como usarlo. Se hará especial hincapié en las diferencias con estos lenguajes.
En cada una de las secciones de Siette donde se usa el lenguaje se describe su funcionalidad. En esta página se describe el lenguaje en si desde el punto de vista léxico y sintáctico:
Aspectos léxicos
Separadores y comentarios
Los espacios en blanco, tabuladores uy fin de línea solo sirven para separar las palabras. Se utilizan dos tipos de comentarios al igual que en Java/Javascript
- // desde este punto hasta final de línea se considera un comentario.
- /* .. */ todo lo incluido dentro es un comentario.
Constantes numéricas
En SSL no hay tipos, no se hace distinción entre números enteros y números reales. Todas las operaciones que implican números se ejecutan como números reales. Desde el punto de vista léxico las constantes numércias se escriben de la misma forma que en Java/Javascript. Asimismo se pueden usar números en formato octal y hexadecimal.
Constantes de cadenas de caracteres
al igual que en Javascript las constantes de caracteres se pueden escribir de dos formas, con comillas simples, o comillas dobles al principio y al final de la cadena. Se pueden utilizar caracteres de escape habituales para fin de línea, tabuladores, etc. y para los caracteres en unicode, i.e: '\u1234'
Palabras reservadas
Son palabras reservadas aquellas que tienen un significado especial en el lenguaje, entre ellas:
int float char boolean true false if else do while for in to downto step switch return print length round
a las que hay que añadir los identificadores predefinidos.
Identificadores
Siguen las mismas reglas que en Java/Javascript. La mayor diferencia es que dependiendo del contexto hay algunos identificadores predefinidos que toman un valor dependiendo del contexto. Entre ellos:
answer
. contiene el texto de la respuesta del alumno.
Operadores
Los operadores son tambien los habituales en Java/Javascript, con la misma prioridad y asociatividad que en estos lenguajes, no se han implementado los operadores a nivel de bits. El siguiente cuadro reumen los operadores del lenguaje de mayor a menor prioridad:
Operador | Tipo | Asociatividad |
---|---|---|
++ -- | Aritmetico, unario, notación postfija | Derecha |
++ -- + - | Aritmetico, unario, notación prefija | Derecha |
(int) (char) (boolean) (string) | Cast, unario, notacion prefija | Derecha |
* / % | Aritméticos, binarios | Izquierda |
+ - | Aritméticos, binarios | Izquierda |
< <= > >= | Relacionales, binarios | Izquierda |
== != | Relacionales, binarios | Izquierda |
! | Lógico, unario, notación prefija | Derecha |
&& | Lógico, binario | Izquierda |
|| | Lógico, binario | Izquierda |
?: | Operador condicional, ternario | Derecha |
= += -= *= /= %= | Asignación, binario | Derecha |