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: clasificación, tipos y características, Apuntes de Semántica de Lenguajes de Programación

Una descripción detallada de los lenguajes de programación, su clasificación según diferentes criterios (nivel de abstracción, forma de ejecución y paradigma de programación) y sus características principales. Se explican los conceptos de lenguajes de máquina, de bajo nivel, de medio nivel, de alto nivel y de muy alto nivel, así como los lenguajes compilados e interpretados y los paradigmas algorítmico, imperativo, lógico y funcional.

Tipo: Apuntes

2013/2014

Subido el 30/04/2014

lucienfuegos
lucienfuegos 🇪🇸

5 documentos

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Dpto. de Tecnología IES Aramo
- 1 -
Lenguajes de programación
Última modificación 2008/10
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga Lenguajes de programación: clasificación, tipos y características y más Apuntes en PDF de Semántica de Lenguajes de Programación solo en Docsity!

Lenguajes de programación

Última modificación 2008/

Contenido

1. INTRODUCCIÓN ................................................................................................ - 3 -

2. DEFINICIÓN ....................................................................................................... - 5 -

3. CLASIFICACIÓN ................................................................................................ - 6 -

SEGÚN EL NIVEL DE ABSTRACCIÓN .............................................................. - 6 -

SEGÚN LA FORMA DE EJECUCIÓN .................................................................. - 6 -

SEGÚN EL PARADIGMA DE PROGRAMACIÓN .............................................. - 8 -

Niklaus Wirth en 1970 y C desarrollado por Ken Thompson y Dennis Ritchie con el objeto de crear un nuevo sistema operativo (UNIX).

Basándose en los trabajos publicados por Robinson en 1965, en 1972, Kowalski publica las primeras ideas acerca de cómo la lógica de primer orden podría ser usada como un lenguaje de programación. Poco después Colmerauer lleva a la práctica estas ideas con la implementación del lenguaje PROLOG (PROgramming in LOGic), el primer y más difundido lenguaje que utiliza un nuevo paradigma de programación, la programación lógica.

Los conceptos de la programación orientada a objetos tienen origen en “Simula 67”, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo. Estos principios fueron refinados más tarde en “Smalltalk”, diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar “sobre la marcha” en lugar de tener un sistema basado en programas estáticos.

La programación orientada a objetos se fue convirtiendo en dominante a mediados de los años ochenta, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces Gráficas de Usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.

Las características de orientación a objetos son utilizadas por lenguajes específicamente diseñados, pero también han sido agregadas a muchos lenguajes existentes anteriormente.

2. DEFINICIÓN

Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones, y es utilizado para controlar el comportamiento físico y lógico de una máquina.

Aunque muchas veces se usan los términos 'lenguaje de programación' y 'lenguaje informático' como si fuesen sinónimos, no es del todo correcto, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML que es un lenguaje para el marcado de páginas web.

Un lenguaje de programación permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo estos datos deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico.

Lenguajes compilados : Antes de poder utilizarse el programa debe utilizarse un

traductor llamado

“compilador” que se encarga de traducir (“compilar”) el programa original (“código fuente”) al programa equivalente escrito en lenguaje de máquina o ensamblador (“binario”). Los binarios son los programas ejecutables y los únicos necesarios para el funcionamiento del programa.

Lenguajes interpretados : Cada vez que se usa el programa debe utilizarse un

traductor llamado “intérprete” que se encarga de traducir (“interpretar”) las instrucciones del programa original (“código fuente”) a código máquina según van siendo utilizadas. Para el funcionamiento del programa siempre es necesario disponer del código original y del intérprete.

Diferencias entres lenguajes compilados e interpretados

● Los lenguajes compilados se compilan una vez y se utilizan cuantas veces se

desee sin necesidad de volver a utilizar el compilador. Los lenguajes interpretados son interpretados, valga la redundancia, cada vez que se ejecutan y necesitan siempre del intérprete.

● Los compiladores analizan todo el programa y no generan resultados si no es

correcto todo el código. Los intérpretes analizan las instrucciones según las necesitan y pueden iniciar la ejecución de un programa con errores e incluso terminar correctamente una ejecución de un programa con errores siempre que no haya sido necesario el uso de las instrucciones que contienen dichos errores.

● Un compilador traduce cada instrucción una sola vez. Un intérprete debe

traducir una instrucción cada vez que la encuentra.

● Los binarios son compilados para una arquitectura específica y no pueden ser

utilizados en otras arquitecturas no compatibles (aunque pueden existir distintos compiladores para generar binarios para diferentes arquitecturas). Un lenguaje interpretado puede ser utilizado en cualquier arquitectura que disponga de un intérprete sin necesidad de cambios.

● Los lenguajes compilados son más eficientes que los interpretados y además

permiten distribuir el programa en forma confidencial mediante binarios.

● Es más sencillo empaquetar lenguajes interpretados dentro de otros lenguajes,

como JavaScript dentro de HTML.

Para obtener las ventajas de ambos tipos de lenguajes algunos utilizan una aproximación en dos fases. Primero el programa original (código fuente) es precompilado a un binario confidencial, portable e interpretable. En una segunda fase el binario precompilado es interpretado en cada arquitectura. Ésta aproximación es la que realiza por ejemplo Java.

Hay que hacer notar que algunas aplicaciones permiten ser programadas con lenguajes. Estos lenguajes no tienen por objeto solicitar acciones a la computadora sino solicitar acciones a la aplicación sobre la que se ejecutan. Por tanto aunque algunos de estos lenguajes son lenguajes de programación, no son lenguajes de programación de computadoras y por tanto no necesitan ser traducidos a código máquina.

Es el caso por ejemplo de SQL, un lenguaje declarativo de cuarta generación diseñado para trabajar con bases de datos.

Este lenguaje SQL es interpretado por el motor de la Base de Datos, no por la CPU.

SEGÚN EL PARADIGMA DE PROGRAMACIÓN

Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. Si bien puede seleccionarse la forma pura de estos paradigmas a la hora de programar, en la práctica es habitual que se mezclen, dando lugar a la programación multiparadigma.

Los diferentes paradigmas de programación son:

Algorítmico, Imperativo o Por procedimientos. El más común y está representado, por

ejemplo, por C o por BASIC.

Describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.

La implementación de hardware de la mayoría de computadores es imperativa ya que el hardware está diseñado para ejecutar código de máquina que es imperativo.

Declarativo o Predicativo. Basado en la utilización de predicados lógicos (lógico) o funciones matemáticas (funcional), su objetivo es conseguir lenguajes expresivos en los que no sea necesario especificar cómo resolver el problema (programación convencional imperativa), sino qué problema se desea resolver. Los intérpretes de los lenguajes declarativos tienen incorporado un motor de inferencia genérico que resuelve los problemas a partir de su especificación.

Lógico. Un ejemplo es PROLOG. El mecanismo de inferencia genérico se basa en los procedimientos de deducción de formulas válidas en un sistema axiomático

Funcional. Representado por la familia de lenguajes LISP (en particular Scheme), ML o

Haskell. El mecanismo de inferencia genérico se basa en la reducción de una expresión funcional a otra equivalente simplificada.

Orientado a Objetos. Cada vez más utilizado, sobre todo en combinación con el imperativo. De hecho los lenguajes orientados a objetos permiten la programación imperativa. Algunos ejemplos de lenguajes orientados a objetos son C++, Java, Python. Usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento.