Introducción a la Programación. Pascal

Introducci´ on a la Programaci´ on. Pascal. Vicente L´ opez Escuela T´ ecnica Superior de Inform´ atica Universidad Aut´ onoma de Madrid ( vicente.l

3 downloads 116 Views 397KB Size

Recommend Stories


Guía de actualización a Android 4 ICS. bq Pascal bq Pascal Lite bq Pascal Lite C
Guía de actualización a Android 4 ICS bq Pascal bq Pascal Lite bq Pascal Lite C Guía de actualización Android 4.0 ICS bq Pascal bq Pascal Lite bq P

Pascal
Ejercicios. Operadores

LA PROGRAMACION LENGUAJE PASCAL
CCUZ 19 LA PROGRAMACION EN LENGUAJE PASCAL CENTRO DE CALCULO UNIVERSIDAD DE ZARAGOZA ENERO - 1988 LA PROGRAMACION EN LENGUAJE PASCAL A. Salas Aya

Story Transcript

Introducci´ on a la Programaci´ on.

Pascal.

Vicente L´ opez Escuela T´ ecnica Superior de Inform´ atica Universidad Aut´ onoma de Madrid ( [email protected] )

2

´Indice General 1 Esquemas B´ asicos 1.1 Ordenaci´on temporal . . . . . . . . . . . . . . . . . . . . . . . 1.2 Componentes b´asicos . . . . . . . . . . . . . . . . . . . . . . . 1.3 Tr´afico de informaci´on . . . . . . . . . . . . . . . . . . . . . . 2 Lenguajes 2.1 Procesamiento de informaci´on: 2.2 Formalizaci´on de los lenguajes 2.3 Las m´aquinas de Von Neuman 2.4 Breve historia de los lenguajes 2.5 Tipos de lenguajes . . . . . .

hombre y ordenador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

7 7 8 9 13 13 15 16 17 20

3 Algoritmos 23 3.1 Pasos en la resoluci´on . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Uso m´ ultiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3 El ejemplo de Josefo . . . . . . . . . . . . . . . . . . . . . . . 25 4 Pascal 4.1 Caracter´ısticas . . . . . . . . . . . 4.2 El programa Pascal . . . . . . . . . 4.3 Palabras reservadas y estructuras . 4.4 Instrucciones sencillas y compuestas 4.5 Diagramas de sintaxis . . . . . . .

. . . . .

33 33 34 35 37 38

5 Datos 5.1 Variables, datos y direcciones . . . . . . . . . . . . . . . . . . 5.2 Identificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . .

39 39 40 41

3

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

´INDICE GENERAL

4 5.4 5.5 5.6 5.7

Constates con tipo . . . . . . . Inicializaci´on de los datos . . . Asignaci´on de las constantes . . Asignaci´on de los distintos tipos

. . . . . . . . . . . . . . . . . . . . . de variables

. . . .

. . . .

. . . .

6 Entrada y salida 6.1 Dispositivos de entrada, salida y almacenamiento 6.2 Las funciones Read y Write . . . . . . . . . . . . 6.3 Formatos . . . . . . . . . . . . . . . . . . . . . . . 6.4 Las funciones WriteLn y ReadLn . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

46 46 46 47

. . . .

. . . .

. . . .

. . . .

51 51 52 54 55

7 Acciones 7.1 Operaciones b´asicas. . . . . . . . . . . . . . . . . . . . . 7.1.1 Operadores aritm´eticos y expresiones aritm´eticas. 7.1.2 Funciones aritm´eticas. . . . . . . . . . . . . . . . 7.1.3 Aritm´etica entera y real. . . . . . . . . . . . . . . 7.1.4 Operadores l´ogicos. . . . . . . . . . . . . . . . . . 7.1.5 Expresiones l´ogicas. . . . . . . . . . . . . . . . . . 7.1.6 Manipulaci´on de bits. . . . . . . . . . . . . . . . . 7.2 Sentencias de control. . . . . . . . . . . . . . . . . . . . . 7.3 Sentencias de repetici´on. . . . . . . . . . . . . . . . . . . 7.4 Manipulaci´on de los datos STRING. . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

59 59 59 61 62 65 68 70 74 79 85

. . . . . . . .

. . . . . . . .

87 87 88 90 91 92 96 97 99

. . . .

103 . 103 . 105 . 106 . 108

8 Modularidad 8.1 Dividir para vencer . . . . . . . . . . . . 8.2 Procedimientos . . . . . . . . . . . . . . 8.3 Funciones . . . . . . . . . . . . . . . . . ´ 8.4 Ambito de definici´on de las variables . . 8.5 Paso de valores por contenido o direcci´on 8.6 Definici´on diferida . . . . . . . . . . . . . 8.7 M´odulos y subm´odulos . . . . . . . . . . 8.8 Recursividad . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

9 Datos con estructura 9.1 Tipos de datos definidos por el programador 9.2 Enumeraciones . . . . . . . . . . . . . . . . 9.3 Conjuntos . . . . . . . . . . . . . . . . . . . 9.4 Arrays . . . . . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . .

. . . . . . . .

. . . .

. . . . . . . .

. . . .

. . . .

. . . . . . . .

. . . .

. . . .

. . . . . . . .

. . . .

. . . .

. . . . . . . .

. . . .

. . . . . . . .

. . . .

. . . . . . . .

. . . .

´INDICE GENERAL 9.5 9.6

5

Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Uniones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

10 Ficheros 125 10.1 Ficheros con Tipo . . . . . . . . . . . . . . . . . . . . . . . . . 125 10.2 Procesamiento secuencial y aleatorio . . . . . . . . . . . . . . 131 10.3 Ficheros de Texto . . . . . . . . . . . . . . . . . . . . . . . . . 136 11 Punteros 11.1 Contenidos, direcciones e identificadores . 11.2 Punteros . . . . . . . . . . . . . . . . . . . 11.3 Asignaci´on din´amica de memoria. . . . . . 11.4 Declaraciones recursivas de tipos de datos

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

141 . 141 . 142 . 145 . 147

6

´INDICE GENERAL

Cap´ıtulo 1 Esquemas b´ asicos del ordenador

1.1

Ordenaci´ on temporal

Un ordenador es una m´aquina dise˜ nada para el procesamiento autom´atico de informaci´on. El esquema m´as sencillo de un ordenador actual es el siguiente:

Entrada

- Computadora

-

Salida

Se denominan dispositivos de entrada a todos aquellos que hacen posible la captura de los datos necesarios para realizar las tareas encomendadas al ordenador. Ejemplos comunes de dispositivos de entrada son los teclados, las tarjetas perforada, y los ratones, pero tambi´en lo son los escaners, micr´ofonos, terminales TRC (Tubos de Rayos Cat´odicos),... Se denominan dispositivos de salida a todos aquellos que hacen posible la comunicaci´on de los resultados de las tareas realizadas por el ordenador. Ejemplos comunes de dispositivos de salida son los terminales TRC, impre7

´ CAP´ITULO 1. ESQUEMAS BASICOS

8

soras, y plotters, pero tambi´en lo son altavoces, actuadores mec´anicos,... Es fundamental en un computador la ordenaci´on temporal de sus operaciones:

- Computadora

Entrada

Salida

-

-

Tiempo y los componentes se definen exclusivamente a partir de la secuencia de operaciones realizadas.

1.2

Componentes b´ asicos

Globalmente a los dispositivos de entrada y salida se les denomina perif´ericos. Los dispositivos de almacenamiento de informaci´on como discos, diskettes, cintas,..., tambi´en son perif´ericos que son dispositivos de entrada o salida seg´ un se grabe o se lea la informaci´on. A los componentes f´ısicos del ordenador se le denomina Hardware y a la informaci´on que dirige la realizaci´on de las tareas se le denomina Software. El ordenador, aparte de los perif´ericos, consta de dos componentes principales: Unidad de memoria y unidad central de procesos. Ordenador Unidad central de procesos

Unidad de memoria

• La unidad de memoria est´a formada por cientos, miles o millones de celdas de memoria en las que se puede almacenar informaci´on y que est´an identificadas por su direcci´on (en el sentido postal). 

A

2

4

1

J

3

3

1

2

3

4

5

6

7



u

u

u

´ ´ 1.3. TRAFICO DE INFORMACION

9

Al contenido de la informaci´on en general se accede por la direcci´on de la celda. El contenido tambi´en puede ser la direcci´on de una celda con lo que es posible almacenar en memoria la instrucciones que se han de realizar incluyendo el acceso a la informaci´on de las celdas. • La unidad central de procesamiento (CPU) dirige y controla el procesamiento de informaci´on que realiza el ordenador y consta de dos partes: la unidad de control y la unidad aritm´etico – l´ogica. unidad memoria

de

6 ?

unidad de control



unidad aritm´etico – l´ogica

La unidad de control busca, obtiene, y ejecuta las instrucciones de los programas almacenadas en la memoria. Cuando las instrucciones indican la realizaci´on de operaciones aritm´eticas (+, ∗,... ) o l´ogicas ( ≥ , ≡ , ...) estas se derivan para ser realizadas en la unidad aritm´etico – l´ogica.

1.3

Tr´ afico de informaci´ on

Vamos a ver de forma simplificada las acciones a las que da lugar en un ordenador las instrucciones de un programa. Es fundamental comprender lo inexcusable de la secuencialidad temporal de la instrucciones suministradas al ordenador. Como ejemplo vamos a considerar esta porci´on de programa: {1} {2} {3} {4} {5}

a := 3; b := 5; c := a + b; c := c + 2; if (c > 9) then writeln(c);

´ CAP´ITULO 1. ESQUEMAS BASICOS

10

y consideraremos un modelo muy simplificado de un ordenador. Este modelo dispone de una U.C.P., con unidad de control y aritm´etico l´ogica, y una peque˜ na memoria con 64 posiciones. Se reservan las posiciones de la 1 a la 50 para almacenar los programas que luego se ejecutar´an y las posiciones 51, 52, 53, ... se utilizan para datos intermedios. En nuestro modelo se inicializan todos los datos a cero al empezar la ejecuci´on del programa y cuando la U.C.P. va a empezar a ejecutar la primera instrucci´on las posiciones 51, 52 y 53 contienen un 0. En esas posiciones se almacenar´an los valores de las variables a,b, y c, respectivamente, 0

0

0

51

52

53

La primera instrucci´on del programa a := 3; indica a la U.C. que en la posici´on 51 de memoria ha de almacenarse el n´ umero entero 3. 3 0 0 51

52

53

La segunda, b := 5; que en 52 almacene un 5, 3

5

0

51

52

53

y en la tercera, la U.C. realiza las siguientes acciones: obtiene los n´ umeros almacenados en 51 y 52, los env´ıa a la U.A.L. para ser sumados y el resultado que devuelve se almacena en 53. 3

5

8

51

52

53

´ ´ 1.3. TRAFICO DE INFORMACION

11

En la cuarta instrucci´on obtiene el n´ umero almacenado en 53 y lo env´ıa a la U.A.L. junto con el 2 para ser sumados. El resultado devuelto lo almacena de nuevo en 53. 3 5 10 51

52

53

La quinta instrucci´on implica que la U.C. obtiene el n´ umero almacenado en 53 y lo env´ıa junto con el 9 a la U.A.L. para ser comparados. Como de la comparaci´on la U.A.L. devuelve que es cierto, se env´ıa al perif´erico correspondiente la orden de sacar al exterior el contenido de la memoria 53.

12

´ CAP´ITULO 1. ESQUEMAS BASICOS

Cap´ıtulo 2 Lenguajes de programaci´ on 2.1

Procesamiento de informaci´ on: hombre y ordenador

La informaci´on que puede procesar un ordenador es distinta a la que puede procesar un humano. A´ un suponiendo que el procesamiento de informaci´on que realiza el cerebro humano es comparable al que realiza un ordenador, la diferencia de dise˜ no entre ambos explicar´ıa la incompatibilidad. Para el humano resulta c´omodo expresar y pensar conceptos abstractos. La frase Sumar dos n´ umeros evoca claramente un operaci´on general que dentro del formalismo matem´atico carece de ambig¨ uedad: z =x+y

.

Es equivalente el valor de la variable z a la suma de los valores de las variables x e y. El modo en que esta frase puede traducirse en una orden precisa para que la realice un ordenador ha cambiado con el tiempo seg´ un variaban los dise˜ nos de los ordenadores. Primitivamente en ordenadores como el MARK I se trataba de una secuencia de tripletes de perforaciones en un cinta. Hoy en d´ıa se trata de las secuencias de ceros y unos del c´odigo binario. En el futuro los programas podr´ıan parecerse a los pentagramas de m´ usica actuales. Una lectura parcial de la expresi´on matem´atica anterior puede ser la siguiente: 13

CAP´ITULO 2. LENGUAJES

14

Un valor particular de la variable z se obtiene sumando los valores de las variables x e y. En el lenguaje PASCAL la suma de dos n´ umeros correspondiente a esta interpretaci´on se expresa con la instrucci´on z := x + y ; con una sintaxis muy pr´oxima a la expresi´on matem´atica, si bien su sem´antica es distinta pues ha de entenderse del siguiente modo: El valor almacenado en la memoria identificada con el nombre x y el valor almacenado en la memoria identificada con el nombre y, han de sumarse almacenando el resultado en el lugar de memoria identificado por el nombre z. Sin embargo, la informaci´on que ha de recibir la Unidad Central de Proceso de un ordenador para realizar esta operaci´on puede ser: 0010 0000 0000 0100 0100 0000 0000 0101 0011 0000 0000 0110 lo que en una lenguaje que establece un compromiso entre ordenador y hombre corresponde a X

Y

@ @ R @

Z  

LOAD ADD STORE

X Y Z

Este lenguaje se denomina Ensamblador (Assembler) y casi corresponde a una traducci´on de la secuencia de ceros y unos en palabras m´as f´aciles de recordar. Se suele hablar de lenguajes de programaci´on de bajo y alto nivel, seg´ un se acerquen a lenguaje natural de los humanos. El ensamblador es un

´ DE LOS LENGUAJES 2.2. FORMALIZACION

15

lenguaje de programaci´ on de bajo nivel y el PASCAL es un lenguaje de programaci´ on de alto nivel. A la secuencia binaria que acepta la UCP del ordenador se le denomina lenguaje m´ aquina. La desventaja obvia de un lenguaje de bajo nivel es lo costoso que resulta la programaci´on de un ordenador con ´el. A medida que un lenguaje se acerca m´as al lenguaje natural, m´as sencillo es programar con ´el y m´as accesible a personas no especializadas. Pero existe otra desventaja: los lenguajes de bajo nivel dependen del ordenador. Dado que se han de ce˜ nir al dise˜ no l´ogico del ordenador, un lenguaje ensamblador s´olo es v´alido para familias de ordenadores con el mismo dise˜ no l´ogico.

2.2

Formalizaci´ on de los lenguajes

Los lenguajes de alto nivel que vamos a estudiar en este curso son el resultado de investigaciones realizadas desde dos enfoques distintos. Por una parte, un lenguaje de programaci´on es un caso particular de un lenguaje formal; por otra, una soluci´on al problema de ingenier´ıa que surge en la construcci´on de m´aquinas procesadoras de informaci´on. La formalizaci´on de los lenguajes es un tema de investigaci´on desde los antiguos griegos. Arist´oteles (384–332 A.C.) se puede considerar el padre de la l´ogica formal. Leibniz en el siglo XVII, y Frege en el XIX, intentaron construir lenguajes formales sin la imprecisi´on y ambig¨ uedad de lenguaje ordinario. Gorge Boole en 1854 proporcion´o un nuevo intento de formalizaci´on con la introducci´on de s´ımbolos, f´ormulas y axiomas. El m´etodo l´ogico de Boole permiti´o construir m´aquinas l´ogicas que pod´ıa resolver autom´aticamente problemas l´ogicos. M´as tarde, el espa˜ nol Leonardo Torres y Quevedo (1852–1939), entre otros dise˜ nos mec´anicos autom´aticos, construy´o el Ajedrecista, un aut´omata capaz de jugar al ajedrez. A finales del siglo XIX y en el XX, los lenguajes formales se investigaron con el intento de formalizar las matem´aticas de un modo similar a como Euclides hab´ıa formalizado la geometr´ıa. Las ideas fundamentales de Russel, Whitehead, Hilbert, Church, y finalmente Goedel, permitieron establecer la imposibilidad de ese proyecto. Turing y Post en 1936 introdujeron un formalismo de manipulaci´on de s´ımbolos ( la denominada m´aquina de Turing ) con el que se puede realizar cualquier computo que hasta ahora podemos imaginar. Esta fue una v´ıa de comunicaci´on entre los problemas formales de la computaci´on y de la matem´atica. La uni´on permiti´o demostrar que no existe ninguna

16

CAP´ITULO 2. LENGUAJES

m´aquina de Turing que pueda reconocer si una sentencia es o no un teorema de un sistema l´ogico formal; pero tambi´en permiti´o demostrar que si un c´alculo puede explicitarse sin ambig¨ uedad en lenguaje natural, con ayuda de s´ımbolos matem´aticos, es siempre posible programar un ordenador digital capaz de realizar el c´alculo, siempre que la capacidad de almacenamiento de informaci´on sea la adecuada. Desde el punto de vista de la ingenier´ıa, los progresos en lenguajes de programaci´on han sido paralelos a los dise˜ nos de los nuevos ordenadores. Babbage ya escribi´o programas para sus m´aquinas, pero los desarrollos importantes tuvieron lugar, igual que en los ordenadores, alrededor de la segunda guerra mundial. Fue en esa ´epoca (justo despu´es de finalizada la guerra) cuando Zuse public´o su libro C´alculo y programaci´on. En ´el aparece por primera vez el concepto de operaci´on de asignaci´on. Zuse se plante´o el problema siguiente: la expresi´on z = z + 1 es incorrecta para significar “ El nuevo valor de z se obtiene sumando 1 al antiguo ”, e introdujo la expresi´on z + 1 ⇒ z. Esta sentencia de asignaci´on nunca se hab´ıa utilizado antes pues siempre se introduc´ıa una nueva variable cuando se proced´ıa a una asignaci´on ( por ejemplo y = z + 1). Este nuevo enfoque es fundamental puesto que el uso sistem´atico de las asignaciones es lo que distingue la forma de pensar en ciencias de la computaci´on y en matem´aticas.

2.3

Las m´ aquinas de Von Neuman

Originalmente la programaci´on de un ordenador era directamente la reordenaci´on de los componentes del ordenador. La idea de producir un programa de ordenador que se pudiera almacenarse en la memoria del ordenador se debe a Von Neuman y apareci´o en un informe que hizo sobre el ordenador EDVAC. Von Neuman consider´o la posibilidad de que una palabra formada por 32 bit fuera o bien un n´ umero o bien una instrucci´on. Una instrucci´on se codificaba por un grupo de bits adyacentes y consider´o sumas, multiplicaciones, transferencia de contenidos de memoria a registros, test, e instrucciones de bifurcaci´on. As´ı, un programa consistir´ıa en una secuencia de palabras en forma binaria. Necesidades pr´acticas muy obvias llevaron a la utilizaci´on de mnemot´ecnicos para programar las instrucciones, y posteriormente otro programador traduc´ıa los mnemot´ecnicos a lenguaje m´aquina. El paso siguiente deb´ıa ser conseguir que fuera el ordenador el que tradujera esas codificaciones y tam-

2.4. BREVE HISTORIA DE LOS LENGUAJES

17

bi´en lograr que ciertos c´odigos correspondieran a m´as de una instrucci´on elemental del ordenador. Al principio de los a˜ nos cincuenta se empezaron a construir estos Decodificadores o Ensambladores. El objetivo de los ingenieros que trabajaban en el dise˜ no de los ordenadores era conseguir que el ordenador aceptara instrucciones con un formato similar al matem´atico, puesto que en aquella ´epoca la mayor´ıa de la aplicaciones giraban alrededor de c´alculos complejos. Para lograr esto fue necesario un cambio radical en el enfoque de la operaci´on de un ordenador.

Datos

?

ordenador

?

Resultado

Programa

?

ordenador

?

Programa

El ordenador deb´ıa considerarse como un procesador de informaci´on capaz de transformar un programa escrito en un lenguaje de alto nivel en un programa en lenguaje m´aquina. A su vez, deb´ıa programarse el compilador capaz de realizar esta transformaci´on.

2.4

Breve historia de los lenguajes

En los a˜ nos 50 se realizaron varios compiladores primitivos y fue en 1957 cuando apareci´o el primer compilador de FORTRAN. El compilador de FORTRAN (FORmula TRANslator) estaba dise˜ nado para traducir a lenguaje m´aquina expresiones y operaciones matem´atica, e incluso permit´ıa la manipulaci´on de matrices. La aparici´on del FORTRAN fue un gran cambio para

CAP´ITULO 2. LENGUAJES

18

los programadores que no todos aceptaron de buen grado. No les gustaba que sus programas fueran tratados por el ordenador como meros datos, y argumentaban que el c´odigo m´aquina generado por el compilador nunca podr´ıa ser tan eficiente como el escrito por ellos directamente. Esto no era generalmente as´ı, puesto que el FORTRAN no fue dise˜ nado pensando en crear un lenguaje bien estructurado sino pensando en crear un traductor de expresiones aritm´eticas a c´odigo m´aquina muy eficiente. Por ello, el dise˜ no l´ogico del ordenador IBM 704 para el que fue creado casi puede deducirse del lenguaje FORTRAN. En diferentes versiones, cada vez m´as estructuradas, el lenguaje FORTRAN se ha utilizado extensivamente desde que apareci´o hasta hoy en d´ıa, y puede considerarse el lenguaje estandard del c´alculo cient´ıfico. Unos a˜ nos despu´es de aparecer el FORTRAN apareci´o el lenguaje ALGOL 60 (Algorithm Language), que fue dise˜ nado para ser independiente del ordenador con una gram´atica bien definida. Tambi´en de aquella ´epoca es el COBOL (Common Business Oriented Language) que se dise˜ no para para las manipulaciones de datos normales en aplicaciones de negocios y con un uso mayor del lenguaje ingl´es en sus frases. Las versiones modernas del COBOL siguen us´andose en la actualidad y es el lenguaje estandard en aplicaciones inform´aticas bancarias. Desde entonces han aparecido diversos lenguajes de alto nivel entre los que podemos mencionar el BASIC (Beginners All–purpose Symbolic Instructional Code), PL/I , APL, PASCAL, ADA, MODULA , C , RPG, PROLOG, LISP, ... etc. Alguno de estos lenguajes han sido dise˜ nados para un tipo concreto de aplicaciones. Por ejemplo, el ADA para aplicaciones relacionadas con defensa, o el RPG para transacciones usuales en los bancos. La evoluci´on de los lenguajes de programaci´on ha estado guiada por la evoluci´on de: • Los ordenadores y sus sistemas operativos. • Las aplicaciones. • Los m´etodos de programaci´on. • Los fundamento te´oricos. • La importancia dada a la estandarizaci´on. Podemos resumir la evoluci´on de los lenguajes de programaci´on en la siguiente tabla:

2.4. BREVE HISTORIA DE LOS LENGUAJES periodo Influencias 1950 – 55 Ordenadores primitivos

1956 – 60 Ordenadores peque˜ nos, caros y lentos Cintas magn´eticas Compiladores e interpretes Optimizaci´on del c´odigo 1961 – 65 Ord. grandes y caros Discos Magn´eticos Sistemas operativos Leng. de prop´osito general

19

Lenguajes Lenguajes ensamblador Lenguajes experimentales de alto nivel FORTRAN ALGOL 58 y 60 COBOL LISP

FORTRAN IV COBOL 61 Extendido ALGOL 60 Revisado SNOBOL APL ( como notaci´on s´olo) 1966 – 70 Ordenadores de diferentes PL/I tama˜ nos, velocidades, costes FORTRAN 66 (estandard) Sistemas de almacenamiento COBOL 65 (estandard) masivo de datos (caros) ALGOL 68 S.O. multitarea e SNOBOL4 interactivos SIMULA 67 Compil. con optimizaci´on BASIC Leng. estandard , APL/360 flexibles y generales 1971 – 75 Micro ordenadores Sistemas de almacenamiento PASCAL masivo de datos peque˜ nos COBOL 74 y baratos PL /I Progr. estructurada Ingenier´ıa del software Leng. sencillos 1976 – 80 Ord. baratos y potentes ADA Sistemas distribuidos FORTRAN 77 Prog. tiempo–real PROLOG Prog. interactiva C Abstracci´on de datos Prog. con fiabilidad y f´acil mantenimiento

CAP´ITULO 2. LENGUAJES

20

2.5

Tipos de lenguajes

Desde un punto de vista m´as general los lenguajes se pueden clasificar en lenguajes de procedimiento o declarativos. En los primeros, con el lenguaje se especifica paso a paso el procedimiento que ha de realizar el ordenador para procesar la informaci´on, mientras que en los segundos se declaran hechos que han de dirigir las respuestas del ordenador. El PASCAL y el C que estudiaremos en este curso son de procedimiento, mientras que por ejemplo el PROLOG, es declarativo. Una porci´on de programa PROLOG es as´ı:

. . . hijo(X,Y)

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.