-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdescripcion.txt
55 lines (50 loc) · 3.15 KB
/
descripcion.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
PROGRAMA
========
Un programa es una secuencia de definiciones.
Las definiciones pueden ser de variables o de funciones.
DEFINICION DE VARIABLE
======================
La sintaxis de la definici�n de una variable es una lista, con al menos un elemento, de identificadores separados por comas seguido de ':' y un tipo.
Las definiciones de variables terminan mediante el caracter ';'
DEFINICION DE FUNCION
======================
Las funciones se definen mediante la palabra reservada "def" el identificador de la funci�n, una lista de parametros separados por comas entre '(' y ')' seguido de ':' y el tipo de retorno cuando sea necesario.
El tipo de retorno y de los par�metros debe ser de tipo simple (no se permiten ni arrays ni registros).
El cuerpo de la funcion va entre '{' y '}'.
El cuerpo de las funciones se compone de una secuencias de cero o mas definiciones de variables seguida de una secuencia de cero o mas sentencias.
En ambos casos terminan con el caracter ';'
La funcion "main" no devuelve nada, no recibe par�metros y obligatoriamente debe estar declarada en �ltimo lugar.
TIPOS
=====
Los tipos simples son "int", "double" y "char".
Los arrays se pueden crear con el constructor de tipos "[]", especificando el tama�o con una constante entera (como en C) seguido de cualquier tipo.
Se usa el constructor de tipos "struct" para la creacion de registros.
Los registros no tienen identificador, y los campos son declarados como variables dentro de '{' '}'. No se permite la definicion de tipos (p.e. typedef).
SENTENCIAS
==========
Una escritura es la palabra reservada "print" seguida de una lista de una o mas expresiones separadas por comas.
Una lectura es la palabra reservada "input" seguida de una lista de una o mas expresiones separadas por comas.
Una asignaci�n est� compuesta por dos expresiones separadas por el operador '='.
La sentencia condicional "if"-"else" y la sentencia iterativa "while" siguen la sintaxis del lenguaje Python (sin parentesis y con ':' despues de la condicion y despues de else).
En ambos casos el cuerpo sigue la sintaxis de Java, las sentencias van entre '{' '}' y si solamente hay un sentencia pueden omitirse.
Se permite la sentencia 'return' <expresion> (la expresion es obligatoria).
La invocaci�n a una funci�n sin retorno (se denomina procedimiento) ser� siempre una sentencia.
EXPRESIONES
===========
La invocaci�n a una funci�n ser� una expresi�n cuando retorne un valor.
La conversi�n expl�cita a tipos simples (cast) se realizar� utilizando la sintaxis del lenguaje C.
Las expresiones est�n formadas por:
- Constantes enteras, reales y caracter sin signo.
- Identificadores
- Los siguientes operadores aplicados a una o dos expresiones (por
orden de precedencia descendente):
( ) Non associative Grouping operator
[] Non associative Access operator
. Left associative Access operator
CAST Non associative
- (unary) Non associative
! Non associative Logical operators
* / % Left associative Arithmetic operators
+ - Left associative Arithmetic operators
> >= < <= != == Left associative Comparison/Rational operators
&& || Left associative Logical operators