domingo, 7 de noviembre de 2010

LENGUAJES IMPERATIVOS - Generalidades COBOL

Laboratorio de Lenguajes de Programación - Semana 8


"Su nombre proviene del acrónimo COmmon Business -Oriented Language (Lenguaje Común Orientado a Negocios).
Fue creado en el año 1960 con el objetivo de crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador, ya que en los años 1960 existían numerosos modelos de ordenadores incompatibles entre sí, y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión.

FUENTE: http://es.wikipedia.org/wiki/COBOL

Esta ves estamos hablando de un lenguaje de programación que ofrece una portabilidad magnifica, nos referimos (ya quedo claro) a COBOL, un lenguaje de programación de alto nivel mostrado por primera vez por CODASYL (Conference on Data Systems Languages) en 1960. Desde entonces ellos son los encargados de proporcionar nuevos y mejores estandares de COBOL, y registrarlos ante la American National Standards Institute (ANSI).

Pero basta de historia, vamos directo a la acción.

PREPARANDONOS

COBOL es un lenguaje de programación que necesita su compilador, entonces nos encargaremos de instalar su respetivo compilador en nuestro sistema operativo UBUNTU.
Vamos a abrir una terminal, y en ella teclearemos la siguiete secuencia:

sudo apt-get install open-cobol

Si se nos pide la contraseña la tecleamos y despues se nos mostrara una ventana asi:


Aceptamos el mensaje de confirmación y esperamos a que termine la configuración.

Despues tecleamos la secuencia:

sudo apt-get install libdb4.8-dev libncurses5-dev libncursesw5-dev


Nos pedira ninguna confirmación, solo esperamos a que se instalen los paquetes.

Ahora verificaremos que nuestro compilador se haya instaldo, tecleamos en la terminal: cobc, y se debe ver algo asi:



LO PRINCIPAL

Eh de decirles que escribir en COBOL tiene su chiste, este es el segundo lenguaje que me topo con una sintaxis bastante peculiar y diferente a la mayoria de los demas.
Se les llama lenguajes de programacion porque en esencia se parecen a un idioma: tienen su sintaxis, su semántica, gramática, etc. Pero todos tienen su forma de escritura, COBOL no es la excepción, esóta es la estructura de la codificación en COBOL:


La parte (1) comprende las columnas de la 1 a la 6 ambas inclusive y se utiliza para numerar las líneas, aunque hoy en día prácticamente no se utilizan.

La parte (2) comprende la columna 7 y en ella podemos encontrar, un guión (-) que nos indica que esta línea es continuación de la anterior pero que por su tamaño ocupa mas de una línea, un asteristo (*) que nos indica que el texto que viene a continuación es un comentario y por lo tanto que el compilador lo ignore, o bien puede servir dependiendo de los compiladores para indicaciones del debug.

La parte (3) se le llama Area A comprende las columnas 8 a 11 ambas inclusive y aquí es donde se escriben los nombre de las divisiones, de las secciones, de los párrafos, los indicadores de FD (File Description) y los niveles de variables 01 y 77.

La parte (4) llamada Area B comprende desde la columna 12 a la 72 y en ellas se incluirán todas las instrucciones del programa, las lineas de las secciones y los niveles de variables mayores a 01.

La parte (5) de la columna 73 a la 80 no se utiliza y por lo tanto es ignorada por el compilador.

El punto es un signo de vital importancia en cobol ya que nos indica el final de una linea, en el han de terminar todas las secciones, divisiones y párrafos. Si al final de una linea el compilador no encuentra el punto, interpretará que la instrucción continúa hasta que aparezca el punto de fin de linea.

Al igual que en otros lenguajes, el cobol dispone de palabras reservadas que no debemos de utilizar como nombres de variables o de párrafos, además éstos no deben de exceder de 30 caracteres (depende del compilador).

Todo programa escrito en cobol, debe tener unas reglas determinadas en su forma de escritura.

Estas reglas son un estándar en la programación del Cobol, aunque no es muy utilizado por la comunidad de los programadores, dado que el uso de otros lenguajes de programación ha hecho que este tipo de reglas no sean seguidas.

Básicamente son:

* Las palabras reservadas se escriben en mayúsculas.
* Las palabras reservadas opcionales se escriben sin subrayar.
* Los símbolos obligatorios se deben incluir siempre.
* Las palabras reservadas obligatorias se escriben subrayadas.
* La información escrita por el programador, deben estar en minúsculas.
* Las partes optativas se encierran entre corchetes.
* Las partes que pueden repertirse van seguidas de tres puntos.

ESTRUCTURA DEL CODIGO

Estas son OBLIGATORIAMENTE las primeras líneas de cualquier código escrito en COBOL, son como una tarjeta de presentación, se considera la primera división del codigo.
IDENTIFICATION DIVISION.
PROGRAM-ID.               Nombre del programa.
AUTHOR.                   Nombre del autor.
INSTALLATION.             Lugar donde está instalado.
DATE-WRITTEN.             Fecha de creación.
DATE-COMPILED.            Fecha de compilación.
REMARKS.                  Comentarios.


Podemos incluir además todos los comentarios o explicaciones que creamos oportunas incluyendo, como ya mencionamos, en la columna 7 un asterisco (*) que nos indica que el compilador hará caso omiso de lo que venga a continuación, por ejemplo.
    * /////// Este programa es para hacer algo ///////
  * // atención a la sección de la fecha ////


La seguna division se refiere al ambiente de trabajo donde se ejecutara el programa escrito en cobol,
ENVIORONMENT: Describe las características que debe tener el ordenador para poder ejecutar el programa, los dispositivos de Entrada \ Salida, el compilador, etc.
No me extiendo mucho en esta division porque ya no es obligatoria al momento de escribir un codigo.

La tercera division se llama DATA DIVISION, aqui se especifica el numero y tipo de variables. El principal atributo de llama:
WORKING-STORAGE SECTION En ella declararemos todas las variables no referentes a archivos, pero que durante la ejecución del programa vayamos a utilizar.

Por ultimo, la cuarta división, llamada PROCEDURE DIVISION, donde se describe, las órdenes y operaciones que se van a realizar y el orden de las mismas.

DATOS

Las variables en COBOL tambien se declaran de una forma muy peculiar, ya que el espacio en memoria no se reserva por medio de bits, sino por medio del numero de digitos o caracteres que queremos que nuestra variable tenga, por ejempo:

A(15): "la variable "A" tiene 15 caracteres, tambien puede escribirse A PIC X(15)"
X PIC 999: "la variable "X" tiene 3 digitos, todos en base 9, osea del 0 al 999"
Y PIC 9 VALUE O: "la variable "Y" tiene un digito, en base 9 (0-9), su valor inicial el 0"
Z PIC 9V9: "la variable Z tiene 1 digito y un digito decimal, en base 9 (0-9)"
W PIC 99V999: "la variable W tiene 2 digitos y 3 digitos decimales, en base 9 (0-9)"
A PIC 99P(4): "la variable A tiene 2 digitos significativos, despues hay 4 ceros (990000)"

Estas son las declaraciones mas comunes de variables.

PROCESOS

Estas son algunas palabras reservadas para realizar algunos procedimientos:

ACCEPT: Guarda una dato desde el teclado
ADD: Se utiliza para sumar.
SUBTRACT: Se utiliza para restar.
MULTIPLY: Se utiliza para multiplicar.
DIVIDE: Se utiliza para dividir.
ROUNDED: Redondeo de cifras.
GIVING: Almacena el resultado de la operación en la variables que se le indiquen.
REMAINDER: Se utiliza junto con DIVIDE, guarda el residuo de la division

EJEMPLO

Posiblemente ya estan aburridos por toda la explicacion anterior, pero cabe mencionar todas las reglas anteriores porque son de suma importancia para lo que haremos a continuacion.
Vamos a escribir un programa que multiplique 2 numeros, sencillo pero servira para poner en practica la sintaxis de COBOL.
Abrimos la terminal y tecleamos: emacs -nw multiplicacion.cob
Tecleamos lo siguiente:
     IDENTIFICATION DIVISION.
     PROGRAM-ID. Multiplicacion.
     AUTHOR. Juan Carlos.
   
     DATA DIVISION.
     WORKING-STORAGE SECTION.
     01 X PIC 9 VALUE ZEROS.
     01 Y PIC 9 VALUE ZEROS.
     01 Res PIC 99 VALUE ZEROS.
   
     PROCEDURE DIVISION.
     CalculateResult.
         ACCEPT X.
     ACCEPT Y.
     MULTIPLY Y BY Y GIVING res.
         DISPLAY "El producto es =", res.
     STOP RUN.


Una vez que terminamos de teclear el codigo procedemos a su compilacion, escribimos en la terminal:

cobc -o multiplicacion multiplicacion.cob

Esto generará un ejectuable llamado multiplicacion, para ejecutarlo tecelamos: ./multiplicacion.
Les deberé la ejecución ya que posiblemente se topen con 6 errores al momento de la compilación, aun asi se creará el archivo ejecutable, pero al correrlo generará un fallo de segmentacion (Segmentation Fault)


Pero esperol les haya sido util la informacion y si tienen alguna duda, sugerencia pueden comentar.

SALUDOS!!! ^_^

1 comentario: