Lenguajes

¿Qué es el lenguaje?

Se llama lenguaje a cualquier sistema de comunicación estructurado, para el que existe un contexto de uso y ciertos principios combinatorios formales. El lenguaje informático es un lenguaje usado por o con ordenadores.

El lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como los ordenadores o computadores.

 

Lenguaje interpretado

Un lenguaje interpretado es un lenguaje de programación que está diseñado para ser ejecutado por medio de un intérprete, en contraste con los lenguajes compilados. Cualquier lenguaje puede ser compilado o interpretado, así que esta denominación es aplicada debido a la práctica de funcionamiento común y no a alguna característica subyacente de un lenguaje en particular. Sin embargo, hay lenguajes que son diseñados para ser en concreto interpretativos, por lo tanto un compilador causará una carencia de la eficacia. Muchos autores rechazan la clasificación de lenguajes de programación entre interpretados y compilados, considerando que el modo de ejecución del programa escrito en el lenguaje es independiente del propio lenguaje. A ciertos lenguajes interpretados también se les conoce como lenguajes de script.

Muchos lenguajes han sido implementados usando tanto compiladores como intérpretes, incluyendo Lisp, Pascal, C, BASIC, y Python. Mientras que Java es traducido a una forma que se destina a ser interpretada, la compilación justo a tiempo es frecuentemente usada para generar el código de máquina. Los lenguajes de Microsoft .NET compilan a una forma intermedia (CIL) la cual es entonces a menudo compilada en código de máquina nativo; sin embargo hay una máquina virtual capaz de interpretar el CIL. Muchas formas de funcionamiento Lisp pueden mezclar libremente código interpretado y compilado. Estas implementaciones también usan un compilador que puede traducir arbitrariamente código fuente en tiempo de ejecución (runtime) a código de máquina.

 

Ventajas:

  • La independencia de plataforma en los lenguajes interpretados

  • La reflexión y uso reflexivo del evaluador

  • Generación funcional de primer orden, y órden n sin necesidad de especificar metadata

  • Posibilidad de generación de código in-situ, sin necesidad de recurrir a una compilación

  • Contiene distintos tipos Dinámicos

  • Facilidad en la depuración

  • Gestión de memoria automática


Lenguaje compilado

Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de instrucciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo. Estos lenguajes se denominan "lenguajes de alto nivel". Sin embargo, el procesador solo entiende un lenguaje que se denomina "lenguaje máquina". Se trata de datos tal como llegan al procesador, que consisten en series de 0 y 1 (datos binarios).

Los lenguajes de programación compilados, son lenguajes de alto nivel que requieren que las instrucciones (código fuente del programa), sean traducidas, -mediante un programa compilador-, a un lenguaje que entienda la máquina (lenguaje máquina), con el fin de generar una versión ejecutable del programa. Ejemplo de lenguajes compilados son Pascal, C, C++, Cobol, Fortran, entre otros.

 

Ventajas de los lenguajes compilados

  • En general, un programa compilado suele ejecutarse mucho más rápido que el mismo interpretado.

Algunos lenguajes generalmente compilados

  1. Ada

  2. ALGOL

  3. BASIC

  4. C

  5. CLEO

  6. COBOL

  7. Common Lisp

  8. Delphi

  9. Eiffel

  10. Fortran

  11. Visual Basic

  12. Visual Foxpro

  13. Visual Prolog

Diferencias

  • Los lenguajes compilados son lenguajes de alto nivel en los que las instrucciones se traducen a código máquina, creando un archivo "traducido" para una ejecución rápida. Por el contrario un lenguaje interpretado es aquel en el que las instrucciones se traducen o interpretan una a una, cada vez que se ejecute el programa. Los lenguajes interpretados son típicamente unas 10 veces más lentos que los programas compilados.

  • EL lenguaje interpretado es mucho menos eficiente que la ejecución de un programa compilado, tampoco es eficiente en tiempo ya que cada instrucción debe pasar por una interpretación en tiempo de ejecución.

  • El lenguaje interpretado tiene más flexibilidad frente a los lenguajes compilados, más facilidad para lograr independencia de plataformas (portabilidad) y menor tamaño de programa.

Lenguaje de alto nivel


Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas.

Características
Lenguaje de alto nivel se refiere al nivel más alto de abstracción de lenguaje de máquina. En lugar de tratar con registros, direcciones de memoria y las pilas de llamadas, lenguajes de alto nivel se refieren a las variables, matrices, objetos, aritmética compleja o expresiones booleanas, subrutinas y funciones, bucles, hilos, cierres y otros conceptos de informática abstracta, con un enfoque en la facilidad de uso sobre la eficiencia óptima del programa.

Ventajas

  • Genera un código más sencillo y comprensible.
  • Escribir un código válido para diversas máquinas o sistemas operativos.
  • Permite utilizar paradigmas de programación.

Inconvenientes

  • Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.
  • Algunos requieren que la máquina cliente posea una determinada plataforma.
 

Lenguaje de bajo nivel


Un lenguaje de programación de características bajo nivel es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de la computadora que lo soporta. El uso de la palabra bajo en su denominación no implica que el lenguaje sea inferior a un lenguaje de alto nivel, si no que se refiere a la reducida abstracción entre el lenguaje y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar tareas críticas de los Sistemas Operativos, de aplicaciones en tiempo real o controladores de dispositivos.

Complejidad vs Dificultad
Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a ese nivel es muy difícil. Dado que este lenguaje viene dado por las especificaciones técnicas del hardware, no permite una abstracción fuera de lo estipulado para el microprocesador de un ordenador. Consecuentemente, es fácilmente trasladado a lenguaje de máquina.

La estructura de los lenguajes son como sigue:

0. Código Binario
1. Lenguaje Máquina
2. Lenguajes ensambladores
3. Lenguajes de medio nivel
4. Lenguajes de alto nivel.

Interacción Máquina
En este tipo de lenguajes se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle, además, está completamente orientado a la máquina.

  • Adaptación - Máxima entre programación y aprovechamiento del recurso de la máquina.
  • Velocidad - Máxima al contar con un acceso directo a los recursos, sin capas intermedias.
  • Portabilidad - Mínima por estar restringido a las especificaciones del fabricante.
  • Abstracción - Mínima por depender completamente de la técnica del hardware.
  • Uso - Requiere de la máxima atención y de una organización estructurada en base a los planos del hardware y del objetivo del software.
  • isomorfismo - Conceptualización de los datos de la información, que se complementaran