Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Lenguajes de Programación: Tipos, Historia y Paradigmas, Monografías, Ensayos de Informática

Este documento ofrece una introducción a los lenguajes de programación, su historia y los distintos paradigmas que los caracterizan. Se mencionan varios lenguajes y sus respectivas etapas de desarrollo, además de las principales características que los diferencian. Se destaca el lenguaje Java y el paradigma orientado a objetos.

Tipo: Monografías, Ensayos

2021/2022

Subido el 10/10/2022

jamonserrano92
jamonserrano92 🇪🇸

4.4

(70)

70 documentos

1 / 120

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Informática IV
Unidad I. 2
LENGUAJES DE PROGRAMACIÓN
1. Plataforma Teórico Conceptual.
Introducción.
Lenguajes de programación hay en gran cantidad, algunos han evolucionado a lo largo del tiempo y
siguen vigentes en el transcurso de muchos años, mientras que otros han sido operativos durante un
período más o menos largo y actualmente no se usan.
Dada esta gran variedad de lenguajes, no se pretende dar una visión de todos, sino una clasificación
en diversos tipos y concretar algunos de ellos. En general un lenguaje es un método conveniente y
sencillo de describir las estructuras de información y las secuencias de acciones necesarias para
ejecutar una tarea concreta.
Los lenguajes de programación utilizan juegos de caracteres "alfabeto" para comunicarse con las
computadoras. Las primeras computadoras sólo utilizaban informaciones numéricas digitales
mediante el código o alfabeto digital, y los primeros programas se escribieron en ese tipo de código,
denominado código máquina basado en dos dígitos 0 y 1, por ser entendible directamente por la
máquina (computadora). La enojosa tarea de programar en código máquina hizo que el alfabeto
evolucionase y los lenguajes de programación comenzaran a utilizar códigos o juegos de caracteres
similares al utilizado en los lenguajes humanos. Así, hoy día la mayoría de las computadoras
trabajan con diferentes tipos de juegos de caracteres de los que se destacan el código ASCII y el
EBCDIC.
De este modo, una computadora a través de los diferentes lenguajes de programación utilizan un
juego o código de caracteres que serán fácilmente interpretados por la computadora y que pueden
ser programados por el usuario.
Dos son los códigos más utilizados actualmente en computadoras, ASCII (American Standard Code
for Information Interchan-c) y EBCDIC (Extended Binary Coded Decimal Intercha-@ige Code).
El código ASCII básico utiliza 7 bits (dígitos binarios. 0,1) para cada carácter a representar, lo que
supone un total de 27 (128) caracteres distintos. El código ASCII ampliado utiliza 8 bits y en ese
caso consta de 256 caracteres. Este código ASCII ha adquirido una gran popularidad. ya que es el
estándar en todas las familias de computadoras personales.
El código EBCDIC utiliza 8 bits por carácter v por consiguiente consta de 256 caracteres distintos.
Su notoriedad reside en ser el utilizado por la firma. En general un carácter ocupara un byte de
almacenamiento de memoria.
Al igual que los lenguajes humanos, tales como el inglés o el español, los lenguajes de
programación poseen una estructura (gramática o sintaxis) y un significado (semántica). La
gramática española trata de los diferentes, modos (reglas) en que pueden ser combinados los
diferentes tipos de palabras para formar sentencias o frases aceptables en español. Los lenguajes de
computadoras tienen menos combinaciones aceptables que los lenguajes naturales, sin embargo,
estas combinaciones deben ser utilizadas correctamente; ello contrasta con los lenguajes naturales
que se pueden utilizar aunque no sigan reglas gramaticales e inclusoaunque no sean comprendidos.
Finalmente, un lenguaje de programación lo definiremos, como un conjunto de reglas, símbolos y
palabras especiales que permiten construir un programa.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Lenguajes de Programación: Tipos, Historia y Paradigmas y más Monografías, Ensayos en PDF de Informática solo en Docsity!

LENGUAJES DE PROGRAMACIÓN

1. Plataforma Teórico Conceptual.

Introducción.

Lenguajes de programación hay en gran cantidad, algunos han evolucionado a lo largo del tiempo y siguen vigentes en el transcurso de muchos años, mientras que otros han sido operativos durante un período más o menos largo y actualmente no se usan. Dada esta gran variedad de lenguajes, no se pretende dar una visión de todos, sino una clasificación en diversos tipos y concretar algunos de ellos. En general un lenguaje es un método conveniente y sencillo de describir las estructuras de información y las secuencias de acciones necesarias para ejecutar una tarea concreta.

Los lenguajes de programación utilizan juegos de caracteres "alfabeto" para comunicarse con las computadoras. Las primeras computadoras sólo utilizaban informaciones numéricas digitales mediante el código o alfabeto digital, y los primeros programas se escribieron en ese tipo de código, denominado código máquina basado en dos dígitos 0 y 1, por ser entendible directamente por la máquina (computadora). La enojosa tarea de programar en código máquina hizo que el alfabeto evolucionase y los lenguajes de programación comenzaran a utilizar códigos o juegos de caracteres similares al utilizado en los lenguajes humanos. Así, hoy día la mayoría de las computadoras trabajan con diferentes tipos de juegos de caracteres de los que se destacan el código ASCII y el EBCDIC. De este modo, una computadora a través de los diferentes lenguajes de programación utilizan un juego o código de caracteres que serán fácilmente interpretados por la computadora y que pueden ser programados por el usuario. Dos son los códigos más utilizados actualmente en computadoras, ASCII (American Standard Code for Information Interchan-c) y EBCDIC (Extended Binary Coded Decimal Intercha-@ige Code). El código ASCII básico utiliza 7 bits (dígitos binarios. 0,1) para cada carácter a representar, lo que supone un total de 27 (128) caracteres distintos. El código ASCII ampliado utiliza 8 bits y en ese caso consta de 256 caracteres. Este código ASCII ha adquirido una gran popularidad. ya que es el estándar en todas las familias de computadoras personales. El código EBCDIC utiliza 8 bits por carácter v por consiguiente consta de 256 caracteres distintos. Su notoriedad reside en ser el utilizado por la firma. En general un carácter ocupara un byte de almacenamiento de memoria.

Al igual que los lenguajes humanos, tales como el inglés o el español, los lenguajes de programación poseen una estructura (gramática o sintaxis) y un significado (semántica). La gramática española trata de los diferentes, modos (reglas) en que pueden ser combinados los diferentes tipos de palabras para formar sentencias o frases aceptables en español. Los lenguajes de computadoras tienen menos combinaciones aceptables que los lenguajes naturales, sin embargo, estas combinaciones deben ser utilizadas correctamente; ello contrasta con los lenguajes naturales que se pueden utilizar aunque no sigan reglas gramaticales e incluso aunque no sean comprendidos.

Finalmente, un lenguaje de programación lo definiremos, como un conjunto de reglas, símbolos y palabras especiales que permiten construir un programa.

1.1. Lenguajes Naturales y lenguajes de programación.

Lengujes naturales

Los lenguajes naturales son aquellos con los cuales hablamos y escribimos en nuestras actividades cotidianas. Entre sus ventajas podemos citar que es fácil de usar y de entender: no debemos aprendernos ningún lenguaje nuevo y cualquiera puede leer la especificación y comentarla o criticarla. Entre los inconvenientes están la imprecisión y la ambigüedad. Aunque el análisis de requisitos se haya realizado correctamente, una especificación en lenguaje natural puede dar lugar a que la implementación final no cumpla estos requisitos. Además, debido a su propia facilidad de uso e imprecisión, las especificaciones suelen ocultar lagunas que sólo se pondrán de manifiesto a la hora de programar, es decir, al traducir la especificación a un lenguaje de programación. El uso de subconjuntos del lenguaje, como el llamado “inglés estructurado”, atenúa estas deficiencias pero sigue sin resolver problemas como la corrección, consistencia o completitud de la propia especificación o de los programas desarrollados a partir de ella.

Los lenguajes de programación ocupan una posición intermedia entre los lenguajes naturales humanos y los precisos lenguajes de máquina.

Gracias a la progresiva complejidad de los lenguajes traductores que permiten convertir las instrucciones de un lenguaje de programación al lenguaje de máquina, la programación puede usar lenguajes de computación que se parecen cada vez más a los lenguajes naturales.

También se habla de lenguajes naturales para referirse al software que permite que los sistemas de computación acepten, interpreten y ejecuten instrucciones en el lenguaje materno o "natural" que habla el usuario final, por lo general el inglés. La mayor parte de los lenguajes naturales comerciales están diseñados para ofrecer a los usuarios un medio de comunicarse con una base de datos corporativa o con un sistema experto.

Podemos resumir que los lenguajes naturales se distinguen por las siguientes propiedades:

 Desarrollados por enriquecimiento progresivo antes de cualquier intento de formación de una teoría.  La importancia de su carácter expresivo debido grandemente a la riqueza de el componente semántico (polisemántica).  Dificultad o imposibilidad de una formalización completa.

Lenguajes de programación

Un lenguaje de programación consiste en un conjunto de órdenes o comandos que describen el proceso deseado. Cada lenguaje tiene sus instrucciones y enunciados verbales propios, que se combinan para formar los programas de cómputo.

Los lenguajes de programación no son aplicaciones, sino herramientas que permiten construir y adecuar aplicaciones.

A los lenguajes máquina se les conoce como lenguajes de primera generación. Los ensambladores son los lenguajes de segunda generación. Los simbólicos de alto nivel de tipo procedural se les denomina de tercera generación y a los relacionales se considera que son de cuarta generación.

A la tercera generación pertenecen lenguajes conocidos como el FORTRAN, COBOL, RPG, BASIC, PL1, SIMULA, ALGOL, PASCAL, ADA, C, LISP, PROGOL, etc. Estos lenguajes de tercera generación son de tipo universal.

A diferencia de los lenguajes de tercera generación, los de cuarta generación no son tan universales y van asociados a determinados sistemas operativos y en muchos casos a determinados sistemas de almacenamiento de información, lo que les resta uno de los mayores intereses de los lenguajes de tercera generación.. La mayor ventaja de los lenguajes relacionados es que son muy productivos en desarrollo a alcanzar niveles de productividad de hasta 6 y 8 veces superior a los que alcanzan los de tercera generación.

Entre los lenguajes de cuarta generación tenemos el CSP de IBM asociado al sistema de gestión de base de datos DB2; el NATURAL de SOFTWARE AG asociado al sistema de datos ADABAS; el SQL que es un lenguaje convertido en estándar mundial como lenguaje de cuarta generación para la consulta de bases relacionales; etc.

Además de los lenguajes señalados hay que hacer referencia a una serie de lenguajes orientados a objetos y cuya utilización tiene preferentemente lugar en los puestos cliente. Entre estos destaca el Visual Basic de Microsoft, el Power Builder y el Delphi.

Además hay que prestar una seria atención al lenguaje de programación Java, desarrollado por SUN y cuya misión fundamental es dar la posibilidad de desarrollar aplicaciones altamente interactivas bajo la modalidad de Web, en el contexto de Internet.

En pocos años y como consecuencia del desarrollo que está teniendo la inteligencia artificial se podrá programar, con ciertas limitaciones sintácticas, en los lenguajes naturales

1.2. Paradigmas en lenguajes de programación.

Existen diversos lenguajes y paradigmas de programación que se han diseñado para facilitar la tarea de la programación en diferentes ámbitos. Por ejemplo, la programación orientada a objetos es un paradigma dirigido al mejoramiento en la calidad del software por medio de la observación de aspectos tales como la corrección, robustez, extensibilidad, compatibilidad y sobre todo la reusabilidad del software. La programación lógica, por su parte, es un paradigma orientado a la expresión de los problemas en términos lógicos para su posterior solución por métodos de inferencia y otras técnicas lógicas.

En la práctica, cada paradigma de programación es implementado a través de diversos lenguajes. Sólo como un ejemplo, la programación orientada a objetos encuentra su recipiente en lenguajes tales como Java, C++, Eiffel, Objective C, el paquete CLOS de Common Lisp, etc.

Existen cuatro modelos básicos de computación que describen casi todos los lenguajes de programación actuales: el imperativo, el aplicativo, el lenguaje con base en reglas y el orientado a objetos. Se describe en forma breve cada uno de estos modelos.

Lenguajes imperativos. Los lenguajes imperativos o de procedimiento son lenguajes controlados por mandatos u orientados a enunciados (instrucciones). Un programa se compone de una serie de enunciados, y la ejecución de cada enunciado hace que el intérprete cambie el valor de una localidad o más en su memoria, es decir, que pase a un nuevo estado.

El desarrollo de programas consiste en construir los estados de máquina sucesivos que se necesitan para llegar a la solución. Ésta suele ser la primera imagen, que se tiene de la programación, y muchos lenguajes de uso amplio (por ejemplo, C, C++, FORTRAN, ALGOL, PL/I, Pascal, Ada, Smalltalk, COBOL) manejan este modelo.

Lenguajes aplicativos. Un punto de vista alternativo de la computación representado por un lenguaje de programación consiste en examinar la función que el programa representa y no sólo los cambios de estado conforme el programa se ejecuta, enunciado por enunciado. Esto se puede conseguir observando el resultado deseado en vez de los datos disponibles. En otras palabras, en vez de examinar la serie de estados a través de los cuales debe pasar la máquina para obtener una respuesta, la pregunta que se debe formular es: ¿Cuál es la función que se debe aplicar al estado de máquina inicial accediendo al conjunto inicial de variables y combinándolas en formas específicas para obtener una respuesta? Los lenguajes que hacen énfasis en este punto de vista se conocen como lenguajes aplicativos o funcionales.

Lenguajes base en reglas. Los lenguajes con base en reglas se ejecutan verificando la presencia de una cierta condición habilitadora y, cuando se satisface, ejecutan una acción apropiada. El lenguaje más común con base en reglas es Prolog, que también se conoce como de programación lógico, puesto que las condiciones habilitadoras básicas son ciertas clases de expresiones lógicas de predicados. La ejecución de un lenguaje reglas es similar a la de un lenguaje imperativo, excepto que los enunciados no secuenciales.

Programación orientada a objetos. En este tipo de lenguaje, se construyen objetos complejos de datos y luego designa un conjunto limitado de funciones para que operen con esos datos. Los objetos complejos se designan como extensiones de objetos más simples y heredan propiedades del objeto más sencillo. Al construir objetos a concretos de datos, un programa orientado a objetos gana la eficiencia de los lenguajes imperativos, y al construir clases de funciones que utilizan un conjunto restringido de objetos de datos, se construye la flexibilidad y confiabilidad del modelo aplicativo.

1.3. Razones de estudio de lenguajes de programación.

Cualquier notación para la descripción de algoritmos y estructuras de datos puede llamarse lenguaje de programación; sin embargo nosotros requerimos además que un lenguaje de programación sea implementado (implantado) en una computadora. Cientos de lenguajes de programación se han diseñado e implementado. Ya en 1969, Samment enumeró 120 que han sido usados ampliamente y muchos otros se han desarrollados desde entonces. Sin embargo la mayoría de los programadores

Los lenguajes más antiguos han experimentado revisiones periódicas para reflejar la influencia de otras áreas de la computación; los más nuevos reflejan una composición de experiencias adquiridas en el diseño y de usos de estos y cientos de otros lenguajes más antiguos.

Algunas de las principales influencias en la evolución de diseños de lenguajes se listan a continuación:

  1. Capacidades de las computadoras. Las computadoras han evolucionado de las máquinas pequeñas lentas y costosas máquinas de tubos de vacío de los años 50 a las supercomputadoras y microcomputadoras de hoy.
  2. Aplicaciones. El uso de la computadora se ha difundido rápidamente, de la concentración original de aplicaciones militares críticas, científicas, negocios industriales de los años 50 donde el costo podría estar justificado en los juegos en computadora, en computadoras personales y aplicaciones en casi todas las áreas de la actividad humana de hoy.
  3. Métodos de programación. Los diseños de lenguajes han evolucionado para reflejar, nuestra cambiante comprensión de los buenos métodos para escribir programas largos y complejos y para reflejar los cambios en el entorno en el cuál se efectúa la programación.
  4. Métodos de implementación. El desarrollo de mejores métodos de implementación ha influido en la selección de las características que se habrán de incluir en los nuevos diseños.
  5. Estudios teóricos. La investigación de las bases conceptuales del diseño e implementación de lenguajes , a través del uso de métodos de matemáticos formales, ha profundizado nuestro entendimiento de las fortalezas y debilidades de las características de los lenguajes y , por tanto, ha influido en la inclusión de estas características en los nuevos diseños de lenguaje.
  6. Estandarización. La necesidad de lenguajes estándar que se puedan implementar con facilidad en una variedad de computadoras y que permita que los programas sean transportados de una computadora a otra ejerce una fuerte influencia conservadora sobre la evolución de los diseños de lenguajes.

A continuación se muestran algunas influencias importantes sobre los lenguajes de programación:

Año Influencias y Nueva Tecnología

1951-55 Hardware : Computadoras de tubos de vacío; memorias de línea aplazada de

mercurio.

Métodos : Lenguajes ensamblador; conceptos base: subprogramas, estructuras

de datos.

Lenguajes : Uso experimental de compiladores de expresión.

1956-60 Hardware : Almacenamiento en cinta magnética; memorias de núcleo; circuitos

de transistores.

Métodos : Tecnología de compiladores inicial; gramáticas BNF; optimización

de código; intérpretes; métodos de almacenamiento dinámicos y procesamiento

de listas.

Lenguajes : FORTRAN, ALGOL 58, ALGOL 60, COBOL, LISP.

1961-65 Hardware : Familias de arquitecturas compatibles, almacenamiento en discos

magnéticos

Métodos : Sistemas operativos de multiprogramación, compiladores de sintaxis-

dirigida.

Lenguajes : COBOL-61, ALGOL 60 (revisada), SNOBOL, JOVIAL, notación

APL

Año Influencias y Nueva Tecnología

1981-85 Hardware : Computadores personales; primeras estaciones de trabajo; juegos de

vídeo; redes de área local; Arpanet.

Métodos : Programación orientada a objetos; entornos interactivos; editores de

sintaxis dirigida.

Lenguajes : Turbo Pascal, Smalltalk-80, crecimiento de Prolog, Ada 83,

Postscript.

1986-90 Hardware : Edad de microcomputadores; crecimiento de estaciones de trabajo

de ingenierías; arquitectura RISC; redes globales; Internet.

Métodos : computación cliente/servidor.

Lenguajes : FORTRAN 90, C++, SML (ML Standar).

1991-95 Hardware : Estaciones de trabajo y microcomputadores mucho más

económicos; arquitectura paralelas masivas; voz, vídeo, fax, multimedia.

Métodos : Sistemas abiertos; entorno de ventanas; Infraestructura de

Información Nacional ("autopistas de la información").

Lenguajes : Ada 95, lenguajes de procesos (TCL, PERL).

La evolución de los lenguajes de programación ha estado guiada por la evolución de:  Las computadoras y sus sistemas operativos.  Las aplicaciones.  Los métodos de programación.  Los fundamento teóricos.  La importancia dada a la estandarización.

Los lenguajes de programación han evolucionado a través de generaciones. En cada nueva generación, van necesitándose menos instrucciones para indicarle a la computadora que tarea efectuar. Es decir, un programa escrito en un lenguaje de primera generación (maquina y/o ensamblador) puede requerir mas de 100 instrucciones; ese mismo programa requerirá menos de 25 instrucciones en un lenguaje de tercera generación (Alto nivel).

1.4.1 Origen. (Autocódigos).

Los primeros lenguajes de programación surgieron de la idea de Charles Babagge a mediados del siglo XIX. Consistía en lo que el denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con la colaboración de Ada Lovelace, la cual es considerada como la primera programadora de la historia, pues realizo programas para aquella supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programación. En 1936, Turing y Post introdujeron un formalismo de manipulación de símbolos (la denominada máquina de Turing) con el que se puede realizar cualquier cómputo que hasta ahora podemos imaginar. Esta fue una vía de comunicación entre los problemas formales de la computación y de la matemática. La unión permitió demostrar que no existe ninguna máquina de Turing que pueda reconocer si una sentencia es o no un teorema de un sistema lógico formal; pero también permitió demostrar que si un cálculo puede explicitarse sin ambigüedad en lenguaje natural, con ayuda de símbolos matemáticos, es siempre posible programar un computadora digital capaz de realizar el cálculo, siempre que la capacidad de almacenamiento de información sea la adecuada. Desde el punto de vista de la ingeniería, los progresos en lenguajes de programación han sido paralelos a los diseños de las nuevas computadoras. Babbage ya escribió programas para sus máquinas, pero los desarrollos importantes tuvieron lugar, igual que en las computadoras, alrededor de la segunda guerra mundial. Cuando surgió la primera computadora, el famoso Eniac, su programación se basaba en componentes físicos, o sea, que se programaba, cambiando directamente el Hardware de la maquina, lo que se hacia era cambiar cables de sitio para conseguir así la programación binaria. Los "Lenguajes Maquina" y los "Lenguajes Ensambladores" (primera y segunda generación) son dependientes de la maquina. Cada tipo de maquina, tal como VAX de digital, tiene su propio lenguaje maquina distinto y su lenguaje ensamblador asociado. El lenguaje ensamblador es simplemente una representación simbólica del lenguaje maquina asociado, lo cual permite una programación menos tediosa que con el anterior. Sin embargo, es necesario un conocimiento de la arquitectura mecánica subyacente para realizar una programación efectiva en cualquiera de estos niveles de lenguajes.

El lenguaje es notable por su sintaxis parecida al ingles, lo que ase que los programas sean relativamente fáciles de leer. La mayoría de los compiladores de COBOL anteriores eran muy lentos, pero las mejoras resientes en las técnicas de compilación han conducido a compiladores de COBOL relativamente rápidos, lo que produce un código ejecutable bastante eficiente.

ALGOL

Algoritmie Languge (lenguaje algortmico) Lenguaje de programación creado en los años 60´s que se usaba principalmente para el diseño de aplicaciones de calculo, la versión más conocida data del año 1968 que se conoció con el nombre de Proporciona recursos para estructurar datos, similares a los que se pueden encontrar en lenguajes derivados de ALGOL 60 como Pascal, C o Modula-2. Permite sobrecarga de operadores y colocar una declaración en cualquier lugar donde pueda aparecer un enunciado (como en C++).

LISP

El lenguaje LISP lo diseño e implementó primero John Mc Carthy y un grupo del instituto de tecnología de Massachusetts al rededor de 1960. El lenguaje se usa mucho en las investigaciones computacionales en forma mas prominente en el área de inteligencia artificial (robótica, proceso del lenguaje natural prueba de teoremas, sistemas de inteligencia , etc.). LISP es diferente a la mayoría de los otros lenguajes en muchos aspectos. Lo más impresionante es la equivalencia de formas entre los programas y los datos en el lenguaje en el cual se permite que las estructuras de datos se ejecuten como programas y que los programas se ejecuten como datos. LISP ofrece una amplia variedad de primarias para la creación, destrucción y modificación de listas (incluyendo las listas de propiedad). Las primarias básicas de las operaciones aritméticas se proporcionan. Las estructuras de control en LISP son relativamente simples. Las expresiones usadas para construir programas se escriben en estricta forma polaca de cambrdge pueden incluir ramificación condicional.

Las referencias de LISP ase basan principalmente en la regla de asociación más reciente para referencias foráneas, que con frecuencia se implementan usando una simple lista enlazada de asociaciones actuales. LISP se implementa más fácilmente con un interprete de software y simulación de software para todas las primarias la mayoría de las implementaciones también proporcionan un compilador que puede usarse para compilar las definiciones de la función seleccionada en código de máquina. Estas funciones compiladas son ejecutables entonces por el interprete de hardware (pero sigue requiriéndose la simulación de software para muchas operaciones).

APL

Sus siglas significan (A Programming Language). Un lenguaje de programación. Este programa fue desarrollado por Kenneth Inverson a mediados de la década de 1960 para resolver problemas matemáticos. Este lenguaje se caracteriza por su brevedad y por su capacidad de generación de matrices y se utiliza en el desarrollo de modelos matemáticos.

APL tiene dos características que lo distinguen y lo apartan de los otros lenguajes:

 Lenguaje interactivo. APL es el único lenguaje que está diseñado expresamente para ser interactivo.  Proceso directo de estructuras completas de datos. En APL las operaciones primarias aceptan arreglos completos como argumentos y producen arreglos completos como resultados. Por lo tanto, la unidad básica de datos tiende a ser un arreglo completo.

APL se basa en estructuras en datos de arreglos homogéneos, con componentes de tipo numérico o carácter. El tipo es estrictamente dinámico y no tiene relación directa con el programador. Está integrada una gran clase de operadores primarios, incluyendo muchos que crean, destruyen y modifican arreglos. Todas las primarias de APL se definen como funciones que regresan un valor.

BASIC

Begginer´s All Purpose Symbolic Instruction Code (código de Instrucciones Simbólicas de Todo Propósito para Principiantes).

Lenguaje simbólico de programación de tercera generación desarrollado en la década de los 60´s y destinado en sus inicios a la enseñanza de la programación

Por su sencillez fue el lenguaje básico utilizado inicialmente en los computadores personales. En general, y al contrario de lo que suele suceder con los más importantes lenguajes simbólicos de programación, en BASIC se suele trabajar en modo intérprete.

El tiempo de ejecución que emplea el programa compilado puede ser hasta diez veces inferior que el empleado en el caso de actuar bajo intérprete. Mientras se está en fase de desarrollo es muy conveniente trabajar en intérprete porque la inmediata ejecución del programa en cada momento permite detectar los errores con gran rapidez, lo que es muy positivo en un lenguaje destinado a principiantes que lógicamente cometen un gran número de errores al desarrollar un programa.

El BASIC es un lenguaje poco estandarizado y hay diferencias bastantes apreciables del que se utiliza en unos y otros sistemas.

Aunque es un lenguaje poco utilizado en la informática profesional, se ha empleado mucho en los microcomputadores y mientras en los primeros años de los 80´s fue el lenguaje en el que se solían desarrollar las aplicaciones en micros.

Hay una versión avanzada del BASIC, denominada QUICK BASIC que además de dar mayores prestaciones presenta las características de un lenguaje de programación algo estructurado, evitando así el desarrollo de los típicos programas espagueti.

A fines de los 90´s el BASIC ha dejado de utilizarse. Su heredero, aunque ya casi irreconocible, es el Visual Basic cuya orientación a objetos lo ha hecho casi imprescindible en la programación de la parte cliente de cualquier sistema cliente servidor.

indetectable. Por otra parte, Niklaus Wirth prefería simplificar el lenguaje para que resultase más operativo. Wirth consideraba un error considerar una característica esencial de un lenguaje de alto nivel la capacidad de expresar un programa de la forma más breve posible.

ALGOL 68 se ha utilizado muy poco, en parte debido a que su informe original utilizaba una terminología nueva y era difícil de leer. Por ejemplo, llama modos (modes) a los tipos de datos y unidades (units) a las expresiones. No obstante, ALGOL 68 fue decisivo para la aparición de Pascal.

El lenguaje incorpora un conjunto relativamente pequeño de conceptos ortogonales. Se minimizan las restricciones acerca del uso combinado de sus distintas características.

ALGOL 68 utilizó la notación VWF (Van Wijngaarden Form) para definir su sintaxis e inglés semi- formal para especificar su semántica. La notación utilizada es más completa y adecuada para la definición de un lenguaje de programación que la BNF.

PASCAL.

El lenguaje de programación Pascal fue desarrollado originalmente por Niklaus Wirth, un miembro de la International Federation of Information Processing (IFIP) El Profesor Niklaus Wirth desarrolló Pascal para proporcionar rasgos que estaban faltando en otros idiomas en ese entonces. Sus principales objetivos para Pascal eran para el lenguaje eran ser eficiente para llevarse a cabo y correrse los programas, permita bien el desarrollo de estructuras y también organizar programas, y para servir como un vehículo para la enseñanza de los conceptos importantes de programación de la computadora. Pascal que se nombró gracias al matemático Blaise Pascal,. el original idioma de Pascal apareció en 1971 con última revisión publicada en 1973. Fue diseñado para enseñar las técnicas de programación y otros temas a los estudiantes de la universidad y era el idioma de opción de los años 60 a los 80s.

Pascal es un lenguaje estructurado en bloques. Un programa en Pascal está formado siempre por un solo bloque de programas principal, que contiene dentro de él definiciones del subprograma usado.

La parte más innovadora del diseño descansa en el trato de los tipos de datos. Una gran sección de diferentes tipos de datos se proporciona: enteros, reales, carácter, enumeraciones, boolianos, arreglos, registros, archivos cuenciales y una forma limitada de conjuntos. Pascal permite que se dé por el programador la definición separada de un tipo de datos.

Pascal puede implementarse en forma eficiente sobre computadoras convencionales. La traducción se hace en el código de máquina ejecutable, a pesar de que algunas implementaciones en Pascal traduce al código de máquina virtual, que interpreta y ejecuta un intérprete del software.

1.4.4 Lenguajes de los 80´s. (Prolog, Small Talk, C, Modula-2, Ada).

PROLOG (programación lógica)

En Octubre de 1981, el gobierno japonés y más concretamente el Ministerio Japonés de Comercio Internacional e Industria (MITI), anuncia la puesta en marcha de un proyecto revolucionario equiparable a la carrera del espacio norteamericana.

Están dispuestos a ofrecer al mundo la siguiente generación, la Quinta Generación de computadoras. Unas máquinas de Inteligencia Artificial que pueden pensar, sacar conclusiones, emitir juicios e incluso comprender las palabras escritas y habladas.

La Quinta Generación prevé máquinas diseñadas para el tratamiento lógico, de capacidades análogas a las capacidades de anteriores generaciones de computadoras para tratar operaciones aritméticas. Se trata de computadoras que tienen el PROLOG como lenguaje nativo (lenguaje máquina), con capacidad para procesar millones de inferencias lógicas por segundo (LIPS).

La programación lógica, representada por lenguajes como Prolog, permite utilizar un subconjunto de la lógica de primer orden, concretamente las cláusulas de Horn, para especificar sistemas. Su base formal permite razonar sobre estas especificaciones, que pueden ser interpretadas directamente mediante resolución, con lo que podemos realizar pruebas de la especificación. Además su propio carácter de declarativos permite representar el qué, en lugar del cómo. Sin embargo, el inconveniente de Prolog es que no está orientado al proceso. Al tratarse de un lenguaje secuencial, no permite especificar sistemas que interactúan con el entorno o sistemas compuestos por muchas partes que funcionan concurrentemente. Existen lenguajes lógicos concurrentes, como Parlog, que subsanan estas deficiencias. Otro inconveniente que presentan estos lenguajes es que no admiten tipos de datos, ni siquiera definiciones de datos, por lo que son poco adecuados para especificaciones complejas. Podemos decir, por tanto, que, aunque a veces hayan sido usados para la especificación, los lenguajes lógicos no son lenguajes de especificación propiamente dichos.

C

El lenguje c, es un lenguaje de programación de tercera generación diseñada para poder crear aplicaciones de todo tipo inicialmente se usaba en entornos de tipo UNIX aunque después sé extendió en todas las plataformas. Su creador fue Dennis Ritchie. El lenguaje C reúne características de programación intermedia entre los lenguajes ensambladores y los lenguajes de alto nivel; con gran poderío basado en sus operaciones a nivel de bits (propias de ensambladores) y la mayoría de los elementos de la programación estructurada de los lenguajes de alto nivel, por lo que resulta ser el lenguaje preferido para el desarrollo de software de sistemas y aplicaciones profesionales de la programación de computadoras.

Su diseño incluyo una sintaxis simplificada, la aritmética de direcciones de memoria (permite al programador manipular bits, bytes y direcciones de memoria) y el concepto de apuntador; además, al ser diseñado para mejorar el software de sistemas, se busco que generase códigos eficientes y uno portabilidad total, es decir el que pudiese correr en cualquier máquina. Logrados los objetivos anteriores, C se convirtió en el lenguaje preferido de los programadores profesionales. En 1980 Bjarne Stroustrup de los laboratorios Bell de Murray Hill, New Jersey, inspirado en el lenguaje Simula67 adiciono las características de la programación orientada a objetos (incluyendo la ventaja de una biblioteca de funciones orientada a objetos) y lo denomino C con clases. Para 1983 dicha denominación cambio a la de C++. Con este nuevo enfoque surge la nueva metodología que aumenta las posibilidades de la programación bajo nuevos conceptos.

ADA.

Nombrado en honor de la primera persona programador de computadoras del mundo, Augusta Ada Byron King, Condesa de Lovelace, e hija del poeta ingles Lord Byron.

Ada es un idioma de la programación de alto nivel pensado para las aplicaciones en vías de desarrollo donde la exactitud, seguridad, fiabilidad, y manutencion son primeras metas.

Ada es un fuertemente del tipo orientado a Objeto. Se piensa que trabaja bien en un ambiente del multi-lenguaje y ha standarizado los rasgos para apoyar la unión a otros idiomas.

La Razón de Ada proporciona una descripción de los rasgos principales del idioma y sus bibliotecas y explicaciones de las opciones hecha por los diseñadores del idioma.

El desarrollo del lenguaje Ada siguió un patrón único en la historia de los lenguajes más importantes de la programación. En los años 70’s el Departamento de Defensa de Estados Unidos se comprometió a desarrollar un lenguaje de programación estándar para aplicaciones en sistemas incorporados, en los cuales en una o más computadoras son parte de un sistema más grande tal como un sistema de aeroplanos, barcos o de comunicaciones, se produjo un conjunto detallado de especificaciones que describían varias de las capacidades requeridas. Estas se volvieron a definir en forma progresiva a través de una serie de documentos preliminares conocidos como " Strawman ", " Woodenman ", "Tinman", "Ironman" y por último "Steelman". Cada uno de las especificaciones preliminares eran criticadas por un numeroso grupo de expertos en lenguajes de programación. Después de algunas revisiones de estos diseños, se sostuvo otra vez una critica extensa, que en 1979 condujo a la selección final de un diseño que después se llamo "Ada" (por Ada Lovelace, una pionera en computación). Whitaker (1978) da una historia más extensa del desarrollo del Ada.

El diseño del Pascal fue el punto de inicio para el diseño de Ada, pero el lenguaje resultante es diferente de él en muchos aspectos importantes. Como el lenguaje no ha tenido un uso muy extenso todavía, son probables algunos cambios posteriores como se gane más experiencia.

Se intenta que Ada soporte la construcción de programas grandes por medio de equipos de programadores, un programa en Ada se diseña por lo regular como una colección de "componentes de software" más grandes llamados paquetes.

Un paquete contiene un conjunto integrado de definiciones de tipo, datos objeto y subprogramas para manipular estos datos objeto. Esta naturaleza especial de Ada y de la programación en Ada viene de esta énfasis en la construcción de programas que usan paquetes.

El programa en Ada puede incluir un conjunto de tareas separadas que se van a ejecutar en forma concurrente.

Las estructuras del control de secuencias dentro de un subprograma Ada utiliza expresiones de estructuras de control de nivel de las proposiciones similares a las de Pascal. El aspecto más notable de las características de control de secuencia de Ada es la provisión de tareas que puede ejecutarse en forma concurrente y pueden controlarse usando un reloj y otros mecanismos de planeación.

Las estructuras del control de datos en Ada utiliza la organización de estructura en bloque estática para hacer referencias foráneas dentro de grupos pequeños de subprogramas, como Pascal.

Dominios de aplicación de los lenguajes de programación.

El lenguaje apropiado que se use a menudo, depende del dominio de la aplicación que resuelve el problema. El lenguaje adecuado que conviene usar para diversos dominios de alicación ha evolucionado a lo largo de los últimos30 años. A continuación se muestra una tabla con algunos de los lenguajes más importantes para diversos dominios de aplicación.

1.4.5 Definición de un lenguaje de programación. (sintaxis, semántica, metalenguaje, especificación, gramática).

Un lenguaje de programación como lo definimos anteriormente es como un conjunto de reglas, símbolos y palabras especiales que permiten construir un programa.

Un lenguaje de programación es un lenguaje especial, no natural, diseñado con un vocabulario, morfología y sintaxis muy simples y rígidas y orientado a la programación de instrucciones elementales cuya ejecución por un determinado sistema físico da lugar a la realización de una tarea

1.4.5.1. Sintaxis La sintaxis es el conjunto de reglas que gobiernan la construcción o formación de sentencias (instrucciones) válidas en un lenguaje. La sintaxis de un lenguaje de programación es el aspecto que ofrece el programa. Proporcionar las reglas de sintaxis para un lenguaje de programación significa decir cómo se escriben los enunciados, declaraciones y otras construcciones de lenguaje.

La sintaxis, cuya definición sería "la disposición de palabras como elementos en una oración para mostrar su relación,"' describe la serie de símbolos que constituyen programas válidos.

Epoca Aplicación Lenguajes principales Otros lenguajes Negocios Cobol Ensamblador Años Científica FORTRAN ALGOL, BASIC, APL Sesenta Sistemas Ensamblador JOVIAL, Forth IA Lisp SNOBOL Negocios COBOL, hoja de cálculo C, PL/1, 4GL Científica FORTRAN; C; C++ BASIC, Pascal Sistemas C,C++ Pascal, Ada, BASIC, Modula Hoy IA LISP, Prolog Edición TeX, Postscript, procesamiento de texto Proceso Shel de UNIX, TCL, PERL

Marvel

Nuevos Paradigmas ML, Smalltalk Eiffel