Sunteți pe pagina 1din 5

Tema1: Lenguajes de programación D.I.G.

TEMA 1. LENGUAJES DE PROGRAMACIÓN

1. INTRODUCCIÓN
Para que un computador funcione es necesario utilizar programas. El programa indica al
ordenador qué tiene que hacer, y éste únicamente realiza aquellas operaciones que el programa
incluya.
Un programa y sus sentencias se construyen o redactan con unos símbolos, y de acuerdo a
unas reglas, que constituyen la gramática del lenguaje de programación.
Este tema se dedica al estudio de los lenguajes de programación, además, se describen los
distintos tipos de lenguajes de programación y se justifica su existencia.
Existe una gran cantidad de lenguajes de alto nivel, por lo que se efectuará una clasificación
de los mismos en función de diversos criterios: la evolución histórica, el nivel, y sus distintos
campos de aplicación.

2. LENGUJAES DE PROGRAMACIÓN

2.1 Qué es un programa


Cuando queremos utilizar el ordenador para escribir texto, jugar, etc., necesitamos poner en
marcha el programa correspondiente.
Poner en marcha un programa es sinónimo a ejecutarlo. Cuando ejecutamos un programa, nosotros
sólo vemos los resultado que produce pero no vemos el guión seguido por el ordenador para
conseguir esos resultados. Ese guión en el programa.
Un programa es una serie de instrucciones dadas al ordenador en un lenguaje entendido
por él, para decirle exactamente lo que queremos que haga.

2.2 Lenguajes de programación


Un programa tiene que escribirse en un lenguaje entendible por el ordenador que, desde el
punto de vista físico, es una máquina electrónica. Los elementos físicos (memoria, CPU, etc ) de
que dispone el ordenador para representar los datos son de tipo binario: esto es, cada elemento
puede diferenciar dos estados (dos niveles de voltaje). Cada estado se denomina genéricamente bit
y se simboliza por 0 ó 1. Por lo tanto, para representar y manipular información numérica,
alfabética y alfanumérica se emplean cadenas de bits.
Cuando un programa tiene que darle instrucciones al ordenador para que lleve a cabo una
acción, tiene que estar almacenada en memoria como cadenas de bits.
Esto hace pensar que escribir un programa utilizando ceros y unos (lenguaje máquina),
llevaría mucho tiempo y tendría muchas posibilidades de cometer errores. Por ese motivo se
desarrollaron los lenguajes ensamblador.
Un lenguaje ensamblador utiliza códigos nemotécnicos para indicarle al hardware las
operaciones que tiene que realizar.
Un código nemotécnico es una palabra o abreviatura fácil de recordar que representa una
tarea que debe realizar el procesador del ordenador. Por ejemplo: MOV AH , 4CM.

1
Tema1: Lenguajes de programación D.I.G.

El código MOV expresa una operación consistente en mover alguna información desde una
posición de memoria a otra.
Para traducir un programa escrito en ensamblador a lenguaje máquina (código binario) se
utiliza un programa llamado ensamblador que ejecutamos mediante el propio ordenador. Este
programa tomará como datos nuestro programa escrito en lenguaje ensamblador y dará como
resultado el mismo programa pero escrito en lenguaje máquina.
Cada modelo de ordenador, dependiendo del procesador que utilice, tiene su propio lenguaje
ensamblador. Debido a esto decimos que estos lenguajes están orientados a la máquina.
Hoy en día son más utilizados los lenguajes orientados al problema o lenguajes de alto
nivel. Estos lenguajes utilizan una terminología fácilmente compresible que se aproxima más al
lenguaje humano. En este caso la traducción es llevada a cabo por otro programa denominado
compilador.
A diferencia de los lenguajes ensambladores, la utilización de lenguajes de alto nivel no
requiere en absoluto del conocimiento de la estructura del procesador que utiliza el ordenador, lo
que facilita la escritura de un programa.

Compiladores
Para traducir un programa escrito en un lenguaje de alto nivel (programa fuente) o lenguaje
máquina se utiliza un programa llamado compilador. El compilador tomará como datos nuestro
programa escrito en lenguaje de alto nivel y dará como resultado el mismo programa pero escrito
en lenguaje máquina.
Por ejemplo, un programa escrito en lenguaje C necesita del compilador C para poder ser
traducido. Posteriormente el programa traducido podrá ser ejecutado directamente por el ordenador.
En cambio, para traducir un programa escrito en lenguaje Java necesita del compilador Java; en este
caso, el lenguaje máquina no corresponde al del ordenador sino al de la máquina ficticia,
denominada máquina virtual Java, que será puesta en marcha por el ordenador para ejecutar el
programa.

Intérpretes
A diferencia de un compilador, un intérprete no genera un programa escrito en lenguaje
máquina a partir del programa fuente, sino que efectúa la traducción y ejecución simultáneamente
para cada una de las sentencias del programa. Por ejemplo, un programa escrito en el lenguaje
Basic necesita el intérprete Basic para se ejecutado. durante la ejecución de cada una de las
sentencias del programa, ocurre simultáneamente al traducción.
A diferencia de un compilador, un intérprete verifica cada línea del programa cuando se
escribe, lo que facilita la puesta a punto del programa. En cambio la ejecución resulta más lenta ya
que acarrea una traducción simultánea.
Los intérpretes, a pesar de los inconvenientes anteriores, son preferibles a los compiladores
cuando el número de veces que se va a ejecutar un programa es muy bajo y no hay problemas de
velocidad; además, con ellos puede ser más fácil desarrollar programas. Esto es así porque,
normalmente, la ejecución de un programa bajo un interprete puede interrumpirse en cualquier
momento para conocer los valores de las distintas variable y la instrucción fuente que acaba de
ejecutarse, lo que hace más fácil la localización de errores. Con un programa compilador esto no se
puede realizar, salvo que el progrma se ejecute bajo el control de un program especial de ayuda

2
Tema1: Lenguajes de programación D.I.G.

denominado depurador.

3. TIPOS DE LENGUAJES
Desde la aparición de los primeros lenguajes de programación, se les ha ido incorporando
abstracciones con el propósito de aislar al programador de las características de bajo nivel de los
computadores, permitiéndoles expresar los algoritmos empleando conceptos familiares al ámbito
del problemas, en vez de tener que considerar conceptos relativos a los niveles máquinas y
ensamblador. Este conjunto de abstracciones ocultan los detalles de estructura y funcionamiento
interno del computador.
Cualquier algoritmo es posible especificarlo en cualquier lenguaje, lo que sucede es que
según elijamos uno u otro nos resultará más o menos fácil la transcripción de algoritmo a programa.

3.1 Clasificación histórica


Cualquier clasificación de lenguajes de programación será siempre un tema de discusión. En
muchos casos, un lenguaje podrá legítimamente aparecer en más de una categoría. A continuación,
veremos las generaciones generales de lenguajes que, en cierta forma, se corresponden con la
evolución histórica de los lenguajes de programación.

Primera y segunda generación de lenguajes


La primera generación de lenguaje se remonta a los días en que se codificaba a nivel
máquina. Todavía continúan llevándose a cabo bastantes trabajos con lenguaje de primera
generación. el código máquina y su equivalente más humanamente legible, el lenguaje
ensamblador, representan la primera y segunda generación de lenguajes respectivamente.
Existen tantos lenguajes ensambladores como arquitecturas de procesadores con su
correspondientes conjuntos de instrucciones. Se aplican a aquellas partes de un sistema que
requieren una gran velocidad

Tercera generación de lenguajes


Debido a la espectacular evolución de los rendimientos del hardware respecto a su precio,
los lenguajes de segunda generación perdieron su protagonismo en función de lenguajes de alto
nivel como Cobol, C, PASCAL, FORTRAN, etc. En estos lenguajes, que son más comprensibles
para el programador, una sentencia se traduce en varias instrucciones de máquina.
El principio de la tercer generación de lenguajes fue desarrollada a finales de los años 50 y
principios de los 60 y ha servido como base para todos los lenguajes de programación modernos.
Los lenguajes de tercera generación (o lenguajes de programación estructurada) se pueden
dividir en tres amplias categorías:
● Lenguajes de alto nivel de propósito general.
● Lenguajes de alto nivel orientados a los objetos.
● Lenguajes especializados.
1. Lenguajes de alto nivel de propósito general
Son lenguajes con potencial para un gran espectro deaplicaciones (por ejemplo, ciencia,

3
Tema1: Lenguajes de programación D.I.G.

ingeniería, comercial, aplicaciones de sistema).


Ejemplos: ALGOL, PASCAL, C, modula-2
2. Lenguajes orientados a objetos
La historia de los lenguajes orientados a objeto empezó a finales de la década de los sesenta
con el lenguaje simula, diseñado para modelar y simular sistemas.
A principios de los ochenta se empezó a trabajar en extensiones del lenguaje C (C++), de
importancia creciente debido a la difusión en los entornos UNIX.
Actualmente se está trabajando en nuevas versiones del lenguaje C++ y en extensiones
orientas a objetos de algunos lenguajes, a la vez que aparecen nuevos lenguajes. como Dylan
o Java.
3. Lenguajes especializados
Los lenguajes especializados están caracterizados por su inusual formulación sintáctica que
ha sido especialmente diseñada para una aplicación particular.
Ejemplos: LISP, PROLOG, APL, FORTM

Lenguajes de cuarta generación


Los lenguajes de cuarta generación (L4G) han elevado aún más el nivel de abstracción.
Un L4G se caracteriza por ser “no procedimental”, lo que permite al usuario preocuparse de
“qué” sin necesidad de especificar “cómo” hacerlo.
Este tipo de lenguajes surge con la aparición de los SGBD (Sistemas de Gestión de Bases de
Datos), y se encuentran orientados a la creación de pantallas (formularios, menús, consultas e
informes en aplicaciones de gestión.
Ventaja:
● Desarrollo más rápido de las aplicaciones.
Inconvenientes:
● Consume más recursos que un lenguaje de 3ª generación.
● Puede necesitar de un lenguaje de 3ª generación para algunas tareas de bajo nivel.

Lenguajes de quinta generación


Suele utilizarse el término L5G para englobar los lenguajes que vienen apareciendo desde
finales de los años 80.

3.2 Clasificación en función del nivel


El nivel hace referencia a lo próxima que la forma de expresar las sentencias está al hombre
( al lenguaje natural), o a la máquina (al lenguaje de ceros y unos de los circuitos electrónicos).

Lenguajes de bajo nivel


Se incluye en esta categoría la programación en lenguaje máquina y el lenguaje
ensamblador.

4
Tema1: Lenguajes de programación D.I.G.

La programación en lenguaje máquina consiste en definir, en forma binaria, octal o


hexadecimal, los códigos y direcciones de las instrucciones necesarias para resolver el problema.
El lenguaje ensamblador surge como una herramienta para simplificar la programación en
lenguaje máquina. Para ello se emplean códigos nemónicos.

Lenguajes de alto nivel


Serían el resto de lenguajes.

3.3 Clasificación en función de la aplicación


Desde el punto de vista del campo de la aplicación, podemos hacer la siguiente distribución
de los lenguajes de programación:
1. Aplicaciones científicas
Predominan en ellas el tratamiento de números y matrices.
Ejemplos: FORTRAN, APL, Pascal
2. Aplicaciones en procedimiento de datos
Predominan problemas de creación, mantenimiento, consulta y listado de datos, organizados
en registros, archivos y bases de datos.
Ejemplos: COBOL y PL/1
3. Aplicaciones de tratamiento de texto
Principalmente relacionados con la manipulación de textos en lenguaje natural.
Ejemplos:
4. Aplicaciones en inteligencia artificial
Permiten la realización de programas que emulan el comportamiento inteligente: algoritmos
de juegos, robótica, sistemas expertos,,,
Ejemplos: LISP y PROLOG
5. Aplicaciones de programación de sistemas.
Para la programación de módulos de sistemas operativos, compiladores, ensambladores,
intérpretes y, en general, aquellos de interfaz entre el hardware y los usuarios. Ejemplos: C,
modula-2

S-ar putea să vă placă și