es:manual:ssl
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| es:manual:ssl [2021/06/16 14:27] – root | es: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, |
| === Identificadores === | === Identificadores === | ||
| Línea 40: | Línea 40: | ||
| * '' | * '' | ||
| + | * '' | ||
| === Operadores === | === Operadores === | ||
| Línea 58: | Línea 59: | ||
| |= += -= *= /= %= |Asignación, | |= += -= *= /= %= |Asignación, | ||
| + | |||
| + | ==== Aspectos sintácticos ==== | ||
| + | |||
| + | Desde un punto de vita sintactico un programa es una lista de sentencias, que a su vez pueden ser simples o compuestas. El lenguaje no tiene tipos y no requiere de sentencias de declaración. Tampoco tiene funciones, salvo algunas predefinidas. Para describir la sintaxis se utiliza una gramática de contexto libre siguiendo la notación clásica de [[wpes> | ||
| + | |||
| + | < | ||
| + | axioma: listaSent | ||
| + | ; | ||
| + | |||
| + | listaSent: listaSent sent | ||
| + | | ||
| + | ; | ||
| + | |||
| + | sent: sentComp | ||
| + | | asig optPYC | ||
| + | | sentReturn optPYC | ||
| + | | sentIf | ||
| + | | sentWhile | ||
| + | | sentDo optPYC | ||
| + | | sentFor | ||
| + | | sentPrint | ||
| + | ; | ||
| + | |||
| + | optPYC: ';' | ||
| + | | | ||
| + | ; | ||
| + | |||
| + | sentComp: ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | === Expresiones === | ||
| + | Son prácticamente las mismas que en Javascript, añadiendole el [[wp> | ||
| + | |||
| + | < | ||
| + | exp: exp ' | ||
| + | | exp ' | ||
| + | | exp ' | ||
| + | | exp '/' | ||
| + | | exp ' | ||
| + | | ' | ||
| + | | cond '?' | ||
| + | | exp '?:' | ||
| + | | ' | ||
| + | | ' | ||
| + | | ' | ||
| + | | var | ||
| + | | asig | ||
| + | | CONSTANTE_ENTERA | ||
| + | | CONSTANTE_REAL | ||
| + | | CONSTANTE_STRING | ||
| + | ; | ||
| + | |||
| + | var: IDENTIFICADOR | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | === Condiciones === | ||
| + | Son expresiones lógicas que tienen como resultado un valor booleano. | ||
| + | |||
| + | < | ||
| + | cond: exp ' | ||
| + | | exp ' | ||
| + | | exp '<' | ||
| + | | exp '< | ||
| + | | exp '> | ||
| + | | exp '>' | ||
| + | | cond ' | ||
| + | | cond '&&' | ||
| + | | ' | ||
| + | | ' | ||
| + | | ' | ||
| + | | ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | === 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 | ||
| + | |||
| + | < | ||
| + | asig: var ' | ||
| + | | var ' | ||
| + | | var ' | ||
| + | | var ' | ||
| + | | var ' | ||
| + | | var '/ | ||
| + | | ' | ||
| + | | ' | ||
| + | | var ' | ||
| + | | var ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | === Sentencia if === | ||
| + | |||
| + | < | ||
| + | sentIf: ' | ||
| + | | ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Sentencia while === | ||
| + | |||
| + | < | ||
| + | sentWhile: ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Sentencia do-while === | ||
| + | |||
| + | < | ||
| + | sentDo: ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Sentencia for === | ||
| + | < | ||
| + | sentFor: ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | === 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. | ||
| + | |||
| + | < | ||
| + | sentFor: ' | ||
| + | | ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Sentencia print === | ||
| + | < | ||
| + | sentPrint: ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | === Arrays === | ||
| + | Pueden definirse arrays unidimensionales son la siguiente sintaxis: | ||
| + | |||
| + | < | ||
| + | asig: var ' | ||
| + | ; | ||
| + | listaExp: listaExp ',' | ||
| + | | exp | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | y acceder a sus elementos mediante: | ||
| + | |||
| + | < | ||
| + | var: IDENTIFICADOR ' | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== 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 '' | ||
| + | |||
| + | Las operaciones entre números se hacen siempre considerando que los operadores son números reales. | ||
es/manual/ssl.1623853670.txt.gz · Última modificación: por root
