|
|
En todos los diagramas las siguientes convenciones aplican:
>---- Representa el inicio de una definción.----> Representa la continuación de la definición.--+-- Representa la unión o bifurcación en el flujo de la definición.<---- Representa la continuación o un ciclo en la definición.--->> Representa el final de la definición.CR (Mac OS), CR y LF (DOS, Windows) o LF (Unix)Los diagramas de esta sección utilizan diversos tipos de línea para indicar la adecuada utilización de delimitadores entre elementos de Stop.
La ausencia de líneas indica la ausencia de delimitadores.======= Una línea doble denota una secuencia de ninguno, uno o más delimitadores------- Una línea simple señala la yuxtaposición de uno o más delimitadores.| Clase Sintáctica | Descripción |
Programa |
|
Módulo |
|
Inclusiones |
|
Definición de Procedimiento |
|
Lista |
|
Bloque |
|
Inicio de Bloque |
|
Fin de Bloque |
|
En este grupo, los distintos tipos de línea empleados en los diagramas sintácticos tienen el siguiente significado:
La ausencia de líneas señala la omisión de delimitadores.------- Una línea simple denota la presencia de ninguno, uno o más delimitadores.Con el fin de no hacer demasiado complicados los diagramas se ha optado por simplemente indicar la ausencia o presencia de delimitadores. La omisión de éstos es aplicable únicamente cuando no hay ambigüedades o problemas de reconocimiento.
| Clase Sintáctica | Descripción |
Instrucciones |
|
Estructuras |
|
Estructuras de Decisión |
|
Sencilla |
|
Múltiple |
|
Estructuras Cíclicas |
|
Prestablecida |
|
Precondicional |
|
Postcondicional |
|
Operaciones |
|
Operador Ternario |
|
Operación de Pila |
|
Operación Básica de Pila |
|
Operación Generalizada de Pila |
|
Operación Indirecta de Pila |
|
Función de Pila |
|
Objeto de Pila |
|
Operador |
|
Operador Aritmético |
|
Operador Lógico |
|
Operador Relacional |
>---------+---> < ---->+-------->>
|
Función Matemática |
|
Operación de E/S |
|
Operación de Evaluación |
|
Operación de Transformación |
|
Operación de Asignación |
|
Escalar |
|
Arreglo |
|
Procedimiento |
|
Variable |
|
| Expresión Postfija |
|
Operador de Inhibición |
|
Objeto Inhibido |
|
Comentario de Línea |
|
Comentario de Bloque |
|
Marca |
|
Para este grupo de diagramas los elementos usados tienen el siguiente significado:
------- Denota la secuencia a seguir en la formación de elementos en la que no puede haber delimitador alguno. ... La elipsis indica un rango continuo de elementos.| Clase Sintáctica | Descripción |
Nombre |
|
Letra |
|
Guión Bajo |
|
Entero |
|
Signo |
|
Número |
|
Dígito |
|
Real |
|
Mantisa |
|
Exponente |
|
Binario |
|
Cadena |
|
Delimitador Cadena |
|
Texto |
|
Caracter |
|
Formato |
|
Estoy trabajando en ellas...

En los siguientes diagramas las siguientes convenciones aplican:
| Pila inicial | Operación | Pila final | Observaciones |
| ... Objeto1 |
IF ... THEN ... ELSE |
... | Cualquier Objeto1 ≠ 0 se toma como una condición verdadera. |
| ... Objeto1 |
WHILE ... DO |
... | Continua el ciclo mientras el Objeto1 ≠ 0. |
| ... Objeto1 |
... UNTIL ... END |
... | Continua el ciclo hasta que el Objeto1 ≠ 0. |
| ... ObjC3 ObjB2 ObjA1 |
FOR 'Nombre DO ... |
... | Los valores a tomar de la pila sólo pueden ser de tipo ENTERO, REAL o BINARIO. Por su orden de introducción, se toman como inicio, fin e incremento. |
| ... ObjB3 ObjA2 ObjC1 |
? |
... ObjX1 |
Donde: * ObjC, ObjB y ObjA son objetos de pila * ObjX = ObjA| ObjC ≠ 0 * ObjX = ObjB| ObjC = 0 |
| ... ObjA1 |
PUSH |
... ObjA2 ObjA1 |
Toma una copia del objeto de la base de la pila y lo inserta en ésta. |
| ... ObjA1 |
DROP |
... | Borra el objeto de la base de la pila. |
| ... ObjC3 ObjB2 ObjA1 |
ROTATE |
... ObjB3 ObjA2 ObjC1 |
Extrae el objeto del nivel 3 y lo inserta en la base de la pila. Los objetos de niveles 1 y 2 son movidos un nivel hacia arriba. El resto de la pila permanece intacto. |
| ... ObjC3 ObjB2 ObjA1 |
REVOLVE |
... ObjA3 ObjC2 ObjB1 |
Quita al objeto de la base de la pila, los objetos de niveles 2 y 3 son movidos un nivel hacia abajo. El objeto que estaba en el nivel 1 es insertado en el nivel 3. El resto de la pila permanece intacto. |
| ... ObjB2 ObjA1 |
SWAP |
... ObjA2 ObjB1 |
Intercambia los objetos de los niveles 1 y 2. |
| ... ObjB2 ObjA1 |
OVER |
... ObjA3 ObjB2 ObjA1 |
Toma una copia del objeto del nivel 1 y se inserta en el nivel 3, desplazando cualquier objeto que estuviera a partir de este punto un nivel hacia arriba. |
| ... ObjB2 ObjA1 |
BELOW |
... ObjB3 ObjA2 ObjB1 |
Toma una copia del objeto del nivel 2 y se inserta en la base de la pila. |
| ... ObjXn+1 ... ObjC4 ObjB3 ObjA2 ENTERO1 |
DUPLICATE |
... ObjX2n ... ObjCn+3 ObjBn+2 ObjAn+1 ObjXn ... ObjC3 ObjB2 ObjA1 |
Crea una copia de n objetos en la pila, indicados por el valor de ENTERO, contados a partir de la base de la pila (una vez tomado éste valor). Los objetos copiados son insertados en la base de la pila en el mismo orden. |
| ... ObjZn+1 ObjYn ObjXn-1 ... ObjC4 ObjB3 ObjA2 ENTERO1 |
ROLL UP |
... ObjYn ObjXn-1 ... ObjC4 ObjB3 ObjA2 ObjZ1 |
Extrae el objeto del n-ésimo nivel indicado por ENTERO (una vez que éste se ha tomado como argumento de la instrucción) y se inserta en la base de la pila. |
| ... ObjZn+1 ObjYn ObjXn-1 ... ObjC4 ObjB3 ObjA2 ENTERO1 |
ROLL DOWN |
... ObjAn ObjZn-1 ObjYn-2 ObjXn-3 ... ObjC2 ObjB1 |
Extrae el objeto de la base de la pila y lo inserta en el n-ésimo nivel, que es indicado por el valor de ENTERO. |
| ... ObjYn+1 ObjXn ... ObjC4 ObjB3 ObjA2 ENTERO1 |
PICK |
... ObjYn+1 ObjXn ... ObjC4 ObjB3 ObjA2 ObjY1 |
Toma una copia del n-ésimo nivel, indicado por ENTERO y lo inserta en la base de la pila. |
| ... ObjYn+2 ObjXn+1 ... ObjC4 ObjB3 ObjA2 ENTERO1 |
INSERT |
... ObjYn+2 ObjXn+1 ObjAn ... ObjC3 ObjB2 ObjA1 |
Crea una copia del objeto que se encuentra en la base de la pila (una vez tomado el valor ENTERO) y lo inserta en el n-ésimo nivel. |
| ... ObjYn+2 ObjXn+1 ... ObjC4 ObjB3 ObjA2 ENTERO1 |
CLEAR |
... ObjY1 |
Borra, contados a partir de la base de la pila, los niveles indicados por el valor ENTERO. Los objetos remanentes descienden. |
| ... ObjYn+2 ObjXn+1 ... ObjC4 ObjB3 ObjA2 ENTERO1 |
INTERCHANGE |
... ObjYn+1 ObjAn ... ObjC3 ObjB2 ObjX1 |
Intercambia el n-ésimo nivel indicado por ENTERO con la base de la pila. |
| ... ObjXn+1 ... ObjC4 ObjB3 ObjA2 ENTERO1 |
INDIRECT |
... ObjXn ... ObjC3 ObjB2 ObjA1 |
Sólo se muestra la pila después de tomar el argumento para INDIRECT. Después de esto seguirá la acción correspondiente a la operación indirecta que tomará su argumento del nivel indicado por el valor ENTERO siguiendo a partir de aquí el comportamiento correspondiente a dicha instrucción. |
| ... ENTERO1 |
SIZE |
... | El tamaño (localidades disponibles) de la pila será determinado por el valor de ENTERO con las siguientes consideraciones * Si ENTERO = 0 la pila se considera de tamaño infinito. * Si ENTERO > 0 todo contenido a partir del nivel ENTERO+1 se pierde si ENTERO es menor al tamaño previo; se crearán celdas vacías en caso contrario. |
| ... ENTERO1 |
SIZE2 |
... ENTERO1 |
* Si ENTERO < 0 devuelve el tamaño definido de la pila como un valor que debe ser => 0 |
| ... | TOP |
... ENTERO1 |
Regresa un valor ENTERO correspondiente al número de localidades ocupadas en la pila. |
| ... ObjA1 |
TYPE |
... ENTERO1 |
Devuelve un valor ENTERO que identifica al tipo de objeto que se haya encontrado en la base de la pila. Los valores corresponden a los declarados como Identificadores de Tipo de Objeto. |
| ... ObjB2 ObjA1 |
+ |
... ObjC1 |
ObjC es un objeto de pila cuyo valor es el resultante de realizar la operación indicada y cuyo tipo estará acorde a las conversiones indicadas en la Matriz de Conversión. ObjC=ObjB+ObjA. |
| ... ObjB2 ObjA1 |
- |
... ObjC1 |
ObjC es un objeto de pila cuyo valor es el resultante de calcular la diferencia de ObjB menos ObjA. |
| ... ObjB2 ObjA1 |
* |
... ObjC1 |
ObjC es un objeto de pila cuyo valor resulta de multiplicar ObjB por ObjA. |
| ... ObjB2 ObjA1 |
/ |
... ObjC1 |
ObjC es un objeto de pila cuyo valor resulta de dividir ObjB entre ObjA. |
| ... ObjB2 ObjA1 |
\ |
... ObjC1 |
ObjC es un objeto de pila cuyo valor resulta del residuo de la división de ObjB entre ObjA (módulo). |
| ... ObjB2 ObjA1 |
^ |
... ObjC1 |
ObjC es un objeto de pila con el valor resultante de elevar el ObjB a la potencia del ObjA. |
| ... ObjB2 ObjA1 |
% |
... ObjC1 |
ObjC es un objeto de pila con el valor resultante del cálculo del porcentaje ObjA del ObjB. |
| ... ObjA1 |
! |
... ObjC1 |
ObjC es un objeto de pila con el valor resultante del factorial para el valor indicado por el ObjA. |
| ... ENTERO2 ENTERO1 |
& |
... ENTERO1 |
El valor de ENTERO se determina tras aplicar la operación AND a nivel bit complemento a 2 entre los valores que se encontraban en los niveles 1 y 2. |
| ... ENTERO2 ENTERO1 |
| |
... ENTERO1 |
El valor de ENTERO se determina tras aplicar la operación OR a nivel bit complemento a 2 entre los valores que se encontraban en los niveles 1 y 2. |
| ... ENTERO1 |
~ |
... ENTERO1 |
El valor de ENTERO se determina tras aplicar la operación NOT a nivel bit complemento a 2 al valor que se encontraba en el nivel 1. |
| ... ObjB2 ObjA1 |
< |
... ObjC1 |
Donde ObjC será 1 si ObjB < ObjA; 0 en caso contrario. La evaluación entre distintos tipos de operadores está acorde a lo indicado en la Matriz de Conversión de tipos. |
| ... ObjB2 ObjA1 |
= |
... ObjC1 |
Donde ObjC será 1 si ObjB = ObjA; 0 en caso contrario. La evaluación entre distintos tipos de operadores está acorde a lo indicado en la Matriz de Conversión de tipos. |
| ... ObjB2 ObjA1 |
> |
... ObjC1 |
Donde ObjC será 1 si ObjB > ObjA; 0 en caso contrario. La evaluación entre distintos tipos de operadores está acorde a lo indicado en la Matriz de Conversión de tipos. |
| ... ObjB2 ObjA1 |
<= |
... ObjC1 |
Donde ObjC será 1 si ObjB <= ObjA; 0 en caso contrario. La evaluación entre distintos tipos de operadores está acorde a lo indicado en la Matriz de Conversión de tipos. |
| ... ObjB2 ObjA1 |
=> |
... ObjC1 |
Donde ObjC será 1 si ObjB => ObjA; 0 en caso contrario. La evaluación entre distintos tipos de operadores está acorde a lo indicado en la Matriz de Conversión de tipos. |
| ... ObjB2 ObjA1 |
>< |
... ObjC1 |
Donde ObjC será 1 si ObjB >< ObjA; 0 en caso contrario. La evaluación entre distintos tipos de operadores está acorde a lo indicado en la Matriz de Conversión de tipos. |
| ... | ENTER |
... CADENA1 |
Hace una pausa en el flujo del programa y espera por una entrada por teclado. Todo lo introducido por teclado se introduce como una CADENA en la pila. |
| ... | ENTRY |
... Objeto1 |
Hace una pausa en el flujo del programa y espera por una entrada por teclado. La secuencia de caracteres introducida se convierte a la forma numérica más cercana: ENTERO, REAL o BINARIO. |
| ... ObjA1 |
POP |
... | ObjA puede ser un objeto de cualquier tipo. POP desplegará en pantalla dicho objeto formateado adecuadamente a partir de la posición actual del cursor. |
| ... ObjC3 ObjB2 ObjA1 |
OPEN |
... ObjD1 |
Donde ObjA es una cadena cuyo valor indica la ruta completa dentro de la estructura de directorios para llegar al archivo a abrir y ObjB el modo de apertura del archivo (1=Lectura, 2=Escritura, 3=Lectura y escritura, 6=Escritura escribiendo al final del archivo, 7=Lectura/escritura posicionando el apuntador del archivo al final de éste). ObjB puede ser cualquier tipo escalar numérico y el modo de apertura será determinado por el valor de los bits menos significativos. ObjC indica el tipo de archivo a manejar (1=BINARIO, 2=ASCII, 4=UNICODE) determiando de igual forma que para ObjB. ObjD es un objeto binario cuya valor corresponderá al controlador del archivo. |
| ... ObjA1 |
CLOSE |
... | ObjA es un controlador de archivo. |
| ... ObjA1 |
RECOVER |
... | ObjA es un controlador de archivo. |
| ... ObjB2 ObjA1 |
ARCHIVE |
... | ObjB es el objeto a escribir y ObjA es un controlador de archivo. |
| ... CADENA1 |
EVALUATE1 |
... CADENA2 ENTERO1 |
Si el objeto en la base de la pila es una cadena, inserta en la base de la pila el tipo de objeto más cercano al que la cadena podría ser convertida. La evaluación de la posible conversión se hace sólo para los objetos que cuenten con identificador (en orden ascendente iniciando a partir de 1) y aplica al primero encontrado. En el caso de Nombres se busca primero por procedimientos y luego por variables. La cadena no se altera. |
| ... ObjA1 |
EVALUATE2 |
... ObjB1 |
Si el objeto en la base de la pila es un Objeto Inhibido de tipo 1, 2 ó 4 se dejará en la base de la pila su valor escalar correspondiente. Si se trata de un objeto tipo 8 se buscará primero si pertenece a un procedimiento (ver EVALUATE 3) y de no serlo se verificará si pertenece a una variable, en cuyo caso se recuperará el valor contenido en ésta. Si no es una variable se probará por objetos de tipo 16 a 127. Sólo en caso de que esto falle también se considerará con un nombre no definido y se dejará intacto (como nombre inhibido). |
| ... ObjA1 |
EVALUATE3 |
... | Si el objeto en la base de la pila es un objeto inhibido tipo 8 perteneciente a un procedimiento o de tipo 16 a 127 este se ejecutará. |
| ... CADENA1 |
EVALUATE4 |
... CADENA1 |
Si la cadena en la base de la pila no puede ser identificado como un tipo de objeto válido, ninguna acción se lleva a cabo. |
| ... ObjA1 |
EVALUATE5 |
... ObjA1 |
Si ObjA es un ESCALAR diferente de CADENA se deja sin alteración. |
| ... ObjA2 ENTERO1 |
TRANSFORM |
... ObjB1 |
El objeto del nivel 2 es transformado al tipo de objeto (a partir de 1) indicado por el valor ENTERO del nivel 1, si es posible. Si la conversión no puede llevarse a cabo ObjB será el objeto original. |
| ... ObjB2 ObjA1 |
STORE |
... | ObjB es el objeto a almacenar y ObjA es un nombre inhibido no perteneciente a un procedimiento. |
| ... ObjA1 |
CHS |
... ObjX1 |
ObjX es el el valor resultante de efectuar un cambio de signo para el ObjA. |
| ... ObjA1 |
SGN |
... ObjX1 |
Devuelve un valor que representa el signo del ObjA: -1 si es negativo, 1 si es positivo y 0 en otro caso. |
| ... ObjA1 |
LN |
... ObjX1 |
ObjX es el el valor resultante del cálculo del logaritmo natural para el ObjA. |
| ... ObjA1 |
EXP |
... ObjX1 |
ObjX es el el valor resultante de elevar el valor e a la potencia indicada por ObjA. |
| ... ObjA1 |
SIN |
... ObjX1 |
ObjX es el el valor resultante de calcular el valor del seno para el ángulo indicado por el ObjA. |
| ... ObjA1 |
COS |
... ObjX1 |
ObjX es el el valor resultante de calcular el valor del coseno para el ángulo indicado por el ObjA. |
| ... ObjA1 |
TAN |
... ObjX1 |
ObjX es el el valor resultante de calcular el valor de la tangente para el ángulo indicado por el ObjA. |
| ... ObjA1 |
SQRT |
... ObjX1 |
ObjX es el valor resultante de calcular la raíz cuadrada del valor ObjA. |
| ... | RAND |
... ObjX1 |
ObjX es un valor REAL en el rango [0-1]. |
| Valor | Tipo de objeto |
| 0 | Celda vacía |
| 1 | ENTERO |
| 2 | REAL |
| 4 | BINARIO |
| 8 | NOMBRE |
| 15 | ARREGLO |
| 16 | + |
| 17 | - |
| 18 | * |
| 19 | / |
| 20 | \ |
| 21 | ^ |
| 22 | % |
| 23 | ! |
| 24 | & |
| 25 | | |
| 26 | ~ |
| 27 | < |
| 28 | = |
| 29 | > |
| 30 | <= |
| 32 | => |
| 33 | >< |
| 34 | CHS |
| 35 | SGN |
| 36 | LN |
| 37 | EXP |
| 38 | SIN |
| 39 | COS |
| 40 | TAN |
| 41 | SQRT |
| 42 | RAND |
| 60 | SIZE |
| 61 | TOP |
| 62 | TYPE |
| 63 | STORE |
| 64 | ENTER |
| 65 | POP |
| 66 | OPEN |
| 67 | CLOSE |
| 68 | RECOVER |
| 69 | ARCHIVE |
| 70 | PUSH |
| 71 | DROP |
| 72 | ROTATE |
| 73 | REVOLVE |
| 74 | SWAP |
| 75 | OVER |
| 76 | BELOW |
| 77 | ? |
| 78 | EVALUATE |
| 79 | TRANSFORM |
| 80 | DUPLICATE |
| 81 | CLEAR |
| 82 | PICK |
| 83 | INSERT |
| 84 | ROLL UP |
| 85 | ROLL DOWN |
| 86 | INTERCHANGE |
| 128 | CADENA |
Los valores no mostrados se consideran reservados para uso futuro.

| Ultima actualización: . |