Conceptos del Lenguaje - Vision General

La sección Conceptos del Lenguaje proporciona los antecedentes necesarios para comprender el resto del manual. Los términos y conceptos discutidos aquí son la base fundamental de la construcción de programas en PRO5.

Si usted es un programador principiante, algunos de los conceptos más avanzados en esta sección puede ser difíciles de entender. Por lo tanto, usted debería considerar la posibilidad de leer esta sección de nuevo en algún momento en el futuro, cuando usted está más familiarizado con el diseño de programas.

Si usted es un programador experimentado, parte de esta sección puede parecer redundante. Sin embargo, incluso las más sutiles diferencias entre los lenguajes de programación pueden causar problemas si un programador los da por entendidos en base a la experiencia previa con algún lenguaje similar.

Espacio de Trabajo

El espacio de trabajo es un bloque de memoria RAM reservada por PRO / 5 y utilizada para mantener un programa y sus datos. Cada vez que inicie PRO / 5 tendrá un espacio de trabajo vacío. Entonces podrá introducir nueva información en el área de trabajo o podrá cargarla desde un disco donde se haya guardado previamente. En un sistema multi-usuario, todos los usuarios de PRO / 5 tienen su propio espacio de trabajo. El tamaño del espacio de trabajo se puede cambiar con la instrucción START. El tamaño máximo permitido depende del computador que está utilizando. Puede que tenga que cambiar el tamaño del espacio de trabajo en función de la aplicación que esté utilizando. Algunos programas usan más memoria de trabajo que otros.

Requerimientos de Memoria del Espacio de Trabajo

PRO / 5 permite al usuario determinar el tamaño del espacio de trabajo utilizando la instrucción START, o con la opción -m en la línea de comandos. Quienes ejecutan PRO / 5 en sistemas con un mínimo de memoria tendrá que usar lo menos posible para una aplicación particular. Sin embargo, podrían surgir problemas al mover programas de un equipo a otro. La manera en que PRO / 5 utiliza la memoria de trabajo pueden ser afectados por el tamaño de palabras y por requisitos de alineación de datos sobre una determinada máquina. Se debe permitir un margen de seguridad a fin de evitar desbordamientos de memoria inesperada al pasar de un sistema a otro.

Comandos e Instrucciones

Un solo comando de PRO / 5 se da en la forma de una instrucción. Cada instrucción se inicia con un comando. El comando le indica a PRO / 5 que ejecute alguna acción que normalmente se realiza en el espacio trabajo. Algunos comandos requieren información adicional para definir la acción a realizar. Esta información adicional se presenta en la forma de elementos sintácticos que se incluyen a continuación del comando, tales como valores literales, variables, nombres de archivo, etc. El manual de Comandos describe cada instrucción reconocida en PRO / 5.

Algunos ejemplos de instrucciones:

STOP

RUN "MIPROGRAMA"

PRINT "Hola, mundo."

Largo Máximo de un Comando

Una instrucción puede tener un maximo de 511 bytes.

Líneas e Instrucciones Compuestas

Una línea se compone de un número de línea seguido de una etiqueta opcional y uno o varias instrucciones. Cuando se escribe una línea en PRO / 5, se finaliza la línea con un ENTER. Una línea puede ser cualquier número entero entre cero (0) y 65534. Si el número de línea no está explícitamente escrito, PRO / 5 supone que se trata de la línea 0. Línea 0 es un caso especial. Esta línea se ejecuta de inmediato. Si la línea contiene más de una instrucción, diríamos que es una instrucción compuesta. Los comandos dentro de una instrucción compuesta deben ir separadas por punto y coma. PRO / 5 ejecuta las declaraciones de izquierda a derecha. Algunos ejemplos de líneas:

1280 LET X=4; GOTO 4000

3000 STOP

Etiquetas de líneas

Una línea de PRO / 5 puede tener opcionalmente una etiqueta a continuación del número de línea. Una etiqueta puede ser de hasta 32 caracteres de largo. Debe comenzar con letras de A-Z y puede contener letras, dígitos, o de signos de subrayado "_." Un signo de dos puntos ":" termina el nombre de la etiqueta. Por ejemplo:

1000 COMPARA: IF A$=B$ THEN GOSUB 2000

Una etiqueta puede ser la única cosa que contenga la línea:

1000 COMPARA:

1010 IF A$=B$ THEN GOSUB 2000

La referencia a una etiqueta se puede usar en cualquier lugar donde se puede referencias una línea de programa (en este caso los dos puntos no se incluirían).

1000 GOSUB COMPARA

1010 ON X GOTO 2000,3000,VERIFICA_ERR,4000,SALIDA_RUTINA

Generalmente, una referencia con etiqueta es igual de rápido que una referencia de número de línea; por lo tanto, el uso de etiquetas principalmente se usaría para mejorar la claridad del programa.

El Compilador/Listador

Antes que PRO / 5 pueda ejecutar un comando, el comando debe convertirse a su forma interna codificada. El compilador lo hace automáticamente cuando se escribe una línea. Este formato interno hace los programas más compactos y rápidos de ejecutar. Aparece un mensaje de error si el compilador no es capaz de compilar una línea, a causa de errores de sintaxis o insuficiencia de memoria. Por ejemplo, si el error es de sintaxis y la línea comienza con un número de línea, la línea se almacena en el programa exactamente como se escribió, pero se marca indicando que no es válida. Cualquier intento de ejecutar la línea antes de corregirla causará un mensaje de error.

Cuando escriba una línea de código, observe lo siguiente:

· Todas las letras minúsculas que no estén encerradas entre comillas se convertirán internamente a mayúsculas.

· Los nombres de ciertos commandos y funciones se component de varios caracteres juntos como por ejemplo GOTO. Por ejemplo, GO TO no sería reconocido por el compilador por tener espacios entre GO y TO.

· Los elementos de un commando se deben separar por espacios. Por ejemplo:

Correcto

PRINT A

GOTO 1000

Incorrecto

PRINTA

GOTO1000

The lister converts a line from its internal, compiled form into a form you can read. This is done when you execute the LIST verb. The LISTed form of a line might not look identical to what was originally typed. PRO/5 removes redundant spaces from lines when they are compiled.

Modo Consola / Modo Ejecución

El objetivo de PRO / 5 es la realización de comandos (en forma de líneas). Usted puede digitar comandos PRO / 5 uno a uno (ejecución de cada comando, según se introduce), o usted puede almacenar una lista de comandos como un programa a ejecutarlo más tarde.

Cuando PRO / 5 está a la espera de líneas de comando se dice que está en modo consola. El símbolo "mayor que" (>) en el lado izquierdo de la pantalla indica esto. Para salir de PRO / 5, mientras está en modo consola, puede escribir RELEASE o BYE en el punto de inserción ">".

Cuando se escribe una línea sin un número de línea (o con el número 0) se ejecuta de inmediato. Esto se denomina modo consola de comandos. Después de la ejecución, la línea es descartada y PRO / 5 queda a la espera de instrucciones para otra línea. Si una línea se ingresa con un número de línea distinto de cero se almacena en el espacio de trabajo en una lista junto con otras líneas que fueran escritas con números de línea. Estas son las líneas de un programa. Cuando esté listo para poner en ejecución de las líneas almacenadas en un programa, escriba RUN en la punto de inserción ">". PRO / 5 entrará en el modo de ejecución. Mientras está en el modo de ejecución, PRO / 5 está recibiendo órdenes de sus líneas almacenadas. Si quiere dar más instrucciones a PRO / 5 en modo consola, entonces usted debe esperar hasta que termine el programa (o interrumpirlo - véase más adelante). A diferencia de muchos BASICs populares, PRO / 5 en general, permite ejecutar casi cualquier comando, ya sea en modo consola o en modo de ejecución. La excepciones se indican en la descripción de los comandos en el Manual de comandos.

While it is executing, the program may request input from the terminal. PRO/5 will temporarily suspend execution until something is typed. It is important to understand that in this instance you are NOT in console mode. You are entering information that will be processed by the program and not by PRO/5 itself.

Mientras se encuentra en ejecución, el programa puede solicitar entradas desde el terminal. PRO / 5 suspende temporalmente la ejecución hasta que se ingresen datos. Es importante comprender que en este caso usted no está en modo consola. Está entrando información que será procesada por el programa y no por PRO / 5.

Interrumpir la Ejecución de Programa

Hay momentos en que necesita interrumpir la ejecución del programa y volver al modo consola. Esto se conoce como “escapar”. En versiones anteriores de BASICs la tecla ESCAPE en el teclado se utilizaba para ello, de ahí el término “escapar”. Sin embargo, debido a que PRO / 5 se ejecuta en muchos sistemas diferentes, se tecla o secuencia de teclas aplicable en cada caso puede ser algo distinta de ESCAPE (el sistema operativo anfitrión que decide la tecla, PRO / 5 se ajusta a esto). Revise su manual de sistema. Otras opciones de interrupción son BREAK, ^C, ^ BREAK (MS-DOS), y DEL.

Cuando se interrumpe la ejecución del programa, PRO / 5 muestra la línea que se interrumpió y, a continuación, da el punto de inserción ">", lo que indica que está en modo consola.

El usuario debe tener cuidado a la hora de interrumpir un programa, sobre todo si ha comenzado una operación de archivo que debe completarse. El programa puede "capturar" las interrupciones con el instrucción SETESC para asegurar la conclusión adecuada del procesamiento crítico. Para obtener más información, consulte el comando SETESC.

Continuar la Ejecución del Programa después de la Interrupción

La ejecución del programa puede ser interrumpida por varias razones. Usted puede solicitar una interrupción usando "Escapar" (véase más arriba). El programa en sí puede requerir una interrupción (utilizando el comando ESCAPE). Por último, el PRO / 5 puede decidir interrumpir el programa si se ha producido un error que el programa no podía controlar. En cualquier caso, PRO / 5 entra en modo consola. Si desea reanudar la ejecución del programa en el punto de interrupción simplemente escriba el comando RUN.

NOTA: A diferencia de otros BASICs, el comando RUN no se inicia automáticamente al comienzo del programa y no limpia ni inicializa datos.

Si desea reiniciar el programa desde el principio con todos los datos a cero, entonces debe usar:

BEGIN

GOTO 1

RUN

Finalmente, si quiere continuar la ejecución en otra línea dentro de la misma instancia de ejecución conservando los datos, entonces primero escriba una instrucción GOTO indicando la línea de continuación. Por ejemplo, la siguiente instrucción continuará la ejecución en la línea 1000:

GOTO 1000

RUN

Program Editing

Al igual que con otros BASIC, PRO/5 ordena las líneas por su número. Cada vez que almacena una línea en su programa, esta se coloca en la secuencia adecuada dentro de las otras líneas.

Vea los comandos DELETE, EDIT, MERGE, y RENUM para conseguir información adicional sobre edición de programas.

Si la ejecución del programa fue interrumpida, puede editar libremente el programa antes de continuar la ejecución. Esta es una ventaja significativa de PRO/5 por sobre otros BASICs porque estos no permiten la ejecución después de editar. Sin embargo, no puede editar líneas que se hallen en un GOSUB , WHILE, or FOR actovos; o una instrucción con un error pendiente por RETRY (una línea con un error no controlado si puede ser editada).

Todo programa tiene un commando END “invisible” que PRO/5 crea automáticamente en la línea 65535. Está no se mostrará cuando haga un LIST al programa. Esta ahí para detener la ejecución del programa en caso de que el programador olvide usar la instrucción END o STOP.

Superposición de Programa

A veces, un programa con la suficiente complejidad es demasiado grande para caber en el espacio de trabajo. Cuando esto ocurre, el programa debería dividirse en varios programas más pequeños. Cada programa ejecuta su parte del trabajo y, a continuación, pasa al siguiente programa. Esto se hace por medio de un comando RUN en el programa. Cuando un programa ejecuta otro, el nuevo programa se pone en el espacio de trabajo y sustituye al anterior. Esto se conoce como "superposición".

Tipos de Datos/Estructuras de Datos

Tipos de Datos

Hay dos tipos de datos disponibles en PRO / 5, numéricos y de cadena. Los datos numéricos (o números) consideran los valores que pueden utilizarse en los cálculos aritméticos. PRO / 5 soporta punto flotante los tipos enteros. Una cadena es una secuencia de bytes de longitud arbitraria.

Estructura de Datos

La estructura más común de datos (sin contar las estructuras de archivo), permitidas en PRO / 5 es el arreglo. PRO / 5 es compatible tanto con arreglos numérica como de cadena. Además, PRO / 5 provee una estructura orientada a cadena conocida como "plantilla". Una plantilla es similar a una estructura de registro usual en otras lenguajes y permite referencias simbólicas a sub-campos de cadenas. Las plantillas facilitan la implementación de gestores de bases de datos en general y generadores de reportes. Vea la sección “String Templates” para más detalles.