Lenguajes de Scripting – Artículo

Autores: J. Arcos, J. Agredo

Universidad del Cauca

Facultad de ingeniería electrónica y comunicaciones

Programa ingeniería de sistemas

Abstract

Programming languages are tools used to develop applications of all kinds. There are different types of languages, among them are scripting languages which are mostly used in the Web environment, servers. Each type of language has its own characteristics that make have strengths and weaknesses as the area where they are, not all languages have the same ability to perform in all environments in which they are used.

1. Introducción:

Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. 

Los lenguajes de programación, son herramientas que se utilizan para desarrollo de aplicaciones de todo tipo. Existen diferentes tipos de lenguajes, entre ellos están los lenguajes de scripting los cuales se utilizan más que todo en el ambiente de páginas web, servidores. 

En este documento abordaremos las características principales de algunos lenguajes de programación scripting, un tipo  lenguaje de programación para el que la mayoría de sus implementaciones ejecuta las instrucciones directamente, sin una previa compilación del programa a instrucciones en lenguaje máquina. El intérprete ejecuta el programa directamente, traduciendo cada sentencia en una secuencia de una o más subrutinas ya compiladas en código máquina.  [5]

2. Trabajos relacionados

 nuevas tendencias del software[10], desarrollo web[11], comparación de lenguajes de programacion de aplicaciones web[12], desarrollo de paginas web[13]

3. Características

Cada tipo de lenguaje contiene sus propias características que hacen que tengan fortalezas y debilidades según sea el ámbito en el cual se encuentren, no todos los lenguajes tienen la misma capacidad de desempeño en todos los entornos en los que se utilizan. 

Dependiendo del problema a solucionar, de las necesidades de rendimiento a satisfacer y de la existencia o no, de módulos y librerías ya hechas, dependencias necesarias, resulta necesario hacer la elección de un determinado lenguaje.

3.1  Ruby

El lenguaje Ruby es un lenguaje de scripting, interpretado, fue creado por Yukihiro Matsumoto en el Japón, en el año de 1995, ya que es un lenguaje totalmente orientado a objetos todo en Ruby es un objeto, comparte características similares a smalltalk. Según el creador este lenguaje está diseñado para  la productividad y la diversión del desarrollador, siguiendo los principios de una buena interfaz de usuario.

Este lenguaje posee la característica de que es libre, con lo cual puede ser modificado, copiado y distribuido. A diferencia de otros lenguajes de programación orientados a objetos, Ruby se caracteriza por la herencia simple, tiene su propia convención de declaración de variables [1].  

Según el índice TIOBE que es el encargado de medir el crecimiento de los lenguajes de programación, el lenguaje Ruby cada vez tiene un mayor crecimiento y aceptación por parte de los usuarios, lo que hace que mantenga en constante evolución. Este lenguaje es considerado muy flexible debido a que permite al usuario alterar libremente  las partes esenciales de Ruby, con lo cual puede ser adaptado a las necesidades de cada usuario.

Ruby es muy eficiente en su funcionamiento, ya que posee manejo de hilos independiente del sistema operativo, dando soporte multihilo en todas las plataformas en la que puede ser ejecutado Ruby, sin tener en cuenta si el sistema operativo lo soporta o no [2].

3.2  PHP

Es un lenguaje de scripting, interpretado, fue creado por Rasmus Lerdorf en 1995, al inicio solo fue pensado y creado como una serie de scripts de Perl para tener un control de los accesos online, al principio tuvo el nombre de PHP/FI. Al paso del tiempo Rasmus fue creando un código que fuera capaz mantener una comunicación con bases de datos, lo que ayudó a la creación de páginas web que no fueran estáticas, sino que hubiera una comunicación por parte del usuario( páginas dinámicas) [3].

La evolución de este lenguaje se dio gracias a que Rasmus tomó la decisión de liberar el código, para que fuera utilizado por las personas que lo desearan interactuar con él,  esto conllevo a que se pudieran corregir errores, mejorar el código lo cual ayudó a que hubiera un crecimiento grande en este lenguaje [3].

En el transcurso del tiempo hubieron avances en su estructura, lo cual permitió que se generan las diferentes versiones por las que ha venido evolucionando php, este lenguaje al igual que otros también posee estructuras de control, declaración de funciones.  Hay que tener en cuenta que para ejecutar un programa realizado en este lenguaje existe la necesidad de tener un servidor, ya que este código debe ser ejecutado en uno. Este código puede ser utilizado embebido en HTML

3.3  Python

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. [5 ]

Es usado con éxito en miles de aplicaciones alrededor del mundo, incluyendo sistemas muy grandes y de misión crítica. [ 6]

Python fue creado a finales de los ochenta  por Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba

Permite la creación de todo tipo de programas incluso sitios web no requiere de compilación es un código interpretado, libre y código fuente abierto. Es un lenguaje de propósito general multiplataforma, orientado a objetos, portable, multiparadigma.

Es un opción más para realizar páginas web dinámicas, tiene el gran beneficio de ser un lenguaje multiplataforma por lo que tener problemas al utilizar una u otra plataforma es mínimo.

3.4  Lua

Lúa fue creado en 1993 por Roberto Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes  este lenguaje es implementado como una biblioteca escrita en c,  lúa a pesar de que se considera interpretado, lo es en gran parte, pero posee un proceso de compilación al igual que otros lenguajes como java. El código compilado de este lenguaje es convertido a código bytecode, esta característica hace que este lenguaje pueda ser multiplataforma, debido a que el código generado (bytecode) es ejecutado en la máquina virtual de lúa [4].

Al ser un lenguaje de extensión no posee el programa principal para poder ejecutarse, como en el caso de c, el lenguaje lua al ser embebido requiere de la ayuda de un cliente anfitrión para su ejecución, como por ejemplo javascript el cual es ejecutado utilizando código HTML.

Al estar implementado como una biblioteca en c lúa puede utilizar funciones de este lenguaje  para abarcar un rango cada vez más amplio de dominios. Al ser un software libre permite que se pueda modificar y personalizar al gusto, este lenguaje de programación es muy usado más que todo en el campo de la programación de juegos, lúa al igual que otros poseen estructuras de control, para regular el flujo de ejecución que se desee al momento de crear el código necesario a ejecutar [4].

3.5  Perl

Es un lenguaje de programación muy utilizado para construir aplicaciones CGI para el web. Perl es un acrónimo de Practical Extracting and Reporting Languaje, que viene a indicar que se trata de un lenguaje de programación muy práctico para extraer información de archivos de texto y generar informes a partir del contenido de los ficheros. Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado bourne shell (sh),AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación.

Perl tiene muchas y variadas aplicaciones, gracias a la disponibilidad de muchos módulos estándares y de terceras partes.

Se ha usado desde los primeros días del Web para escribir guiones(scripts) CGI. Es una de las “tres Pes” (Perl, Python y PHP), que son los lenguajes más populares para la creación de aplicaciones Web, y es un componente integral de la popular solución LAMP para el desarrollo web. Grandes proyectos escritos en Perl son Slash, IMDb y UseModWiki, un motor de Wiki. Muchos sitios web con alto tráfico, como Amazon.com yTicketmaster.com usan Perl extensamente. [ 7 ]

3.6  JavaScript

Abreviado comúnmente JS,  es un lenguaje de programación interpretado. Se define como orientado a objetos, basado en prototipos imperativo, débilmente tipado y dinámico.

Se utiliza principalmente en su forma del lado del cliente, implementado como parte de un  navegador permitiendo mejoras en la interfaz del usuario y páginas web dinámicas. [8]

Cabe mencionar que no solo se usa para aplicaciones web, sino también para aplicaciones de escritorio.

Dado que se puede ejecutar del lado del cliente, puede haber programadores que se valgan de esto para ejecutar scripts con contenido malicioso y sin consentimiento del usuario. Para evitar esto, algunos navegadores incorporan algunas restricciones para evitar que se atente contra la integridad de la información del usuario. [8]  Una de estas restricciones es hacer que los scripts se ejecuten en un sandbox, que permite controlar los recursos proporcionados a los programas “cliente” a ejecutarse [8]

4. Cuadro comparativo

RubyPHPPythonLuaPerlJavaScript
Operadores Aritméticos
Suma+Ej: a+b+Ej: $a+$b+Ej: a+b+Ej: a+b+Ej: $a+$b+Ej: a+b
Resta-Ej: a-b-Ej: $a-$b-Ej: a-b-Ej: a-b-Ej: $a-$b-Ej: a-b
Multiplicación *Ej: a*b*Ej: $a*$b*Ej: a*b*Ej: a*b*Ej: $a*$b*Ej: a*b
División  /Ej: a/b/Ej:c$a/$b/Ej: a/b/Ej: a/b/Ej: $a/$b/Ej: a/b
Módulo%Ej: a%b%Ej: $a%b%Ej: a%b%Ej: a%b+Ej: $a+$b%Ej: a%b
Exponenciación **Ej: a**b**Ej:$a**$b**Ej: a**b%Ej: a^b+Ej: $a+$b**Ej: a**b
Operadores de comparación
igual ==Ej: a==b==Ej:$a==$b==Ej: a==b==Ej: a==b==Ej:$a==$b==Ej: a==b
diferente!=Ej: a!=b!=Ej:$a!=$b!=Ej: a!=b~=Ej: a~=b!=Ej:$a!=$b!=Ej: a!=b
menor que <Ej: a<b<Ej:$a<$b<Ej: a<b<Ej: a<b<Ej:$a<$b<Ej: a<b
mayor que >Ej: a>b>Ej:$a>$b>Ej: a>b>Ej: a>b>Ej:$a>$b>Ej: a>b
menor o igual que <=Ej: a<=b<=Ej:$a<=$b<=Ej: a<=b<=Ej: a<=b<=Ej:$a<=$b<=Ej: a<=b
mayor o igual que>=Ej: a>=b>=Ej:$a>=$b>=Ej: a>=b>=Ej: a>=b>=Ej:$a>=$b>=Ej: a>=b
Operadores lógicos
AndandEj:a and bandEj:$a and $bandEjmTrue and FalseandEj: a and band ó &&Ej$a and $b; $a && b&&Ej:  a && b
OrorEj: a or borEj: $a or $borEjmTrue and FalseorEj: a or bor ó ||$a or $b; $a||$b||Ej:  a || b
Not!Ej: !a!Ej: !$anotEjmr = not True notEj: not a!$ ó $a!$a; not $a!Ej:  !a
RubyPHPPythonLuaPerlJavaScript
Paradigmas Imperativo, funcional, reflexivo, orientado a objetos P.O.OEstructuradaFuncionalmultiparadigma, funcional, imperativa, orientado a objetos (basado en clases), reflexiva, procedural, eventos, genéricaImperativo, orientado a objetos (prototipos) y funcional
MultiplataformaSiSiSiSiSiSi
TipadoDinámico/  fuerte Dinámico/ débilDinámico/ débilDinámico/ fuerte  DinámicoDinámico/ débil
InterpretadoSiSiSiSiSiSi
Licencialibre y fuente abiertalibreLibre y fuente abiertalibre y fuente abiertalibre y fuente abiertaLibre
CostoGratuitoGratuitoGratuitoGratuitoGratuitoGratuito
VentajasCurva de aprendizaje corta, alta demanda en el campo laboral.  Facilidad de aprendizaje, se puede conectar con la mayoría de las bases de datos. SImpleSencillo de aprenderLenguaje de alto nivelPortableAmpliableIncrustableExtensibleRápido, es posible utilizarlo en programación orientada a objetos. Reduce ciclo de programaciónPortableManipula archivos de textoExtensibleCapacidad limitada por razones de seguridadSe ejecuta del lado del clienteSeguro y fiable
DesventajasInterpretado, poca documentación,No es un lenguaje muy conocido a comparación de otros.  Interpretado, necesita de un servidor web, con gran número de solicitudes, baja el desempeño, no soporta totalmente la POO.Es lento, para operaciones críticas se necesitaría otro lenguajeFalta de documentaciónErrores en tiempo de ejecución por falta de tipadoInterpretado, poca comunidad de soporte.Se compila cada vez que se ejecutaNo soporta herenciasCódigo visible por cualquier usuarioEl código debe ser descargado completamente

5. Conclusiones 

·     si se tiene conocimiento de programación en un lenguaje, el aprendizaje de otros lenguajes será muy rápido, ya que posee estructuras similares en sus operadores, declaración de funciones, y algunos en su estructura.

·     A pesar de la diferencia de características que poseen los lenguajes de scripting las cuales los hace más óptimos según el entorno en el que se estén utilizando, tiene algo en común y es que son lenguajes que no poseen un tipo de compilación, lo cual hace que la eficiencia de estos en cuanto a rendimiento sea menor a lenguajes compilados.

·     En la búsqueda de información se pudo notar que existe mucha documentación de algunos lenguajes, debido a la gran cantidad de personas que de alguna u otra forma aporta conocimiento lo cual permite que haya  un rápido aprendizaje y buen manejo de estos.

.     Perl hace hincapié en el respaldo para tareas comunes orientadas a aplicación, teniendo expresiones regulares incorporadas, escaneo de archivos y características de generación de reportes. Python hace hincapié en el respaldo para metodologías comunes en programación como diseño de estructuras de datos y programación orientada a objetos.

6. Bibliografía

[1] http://es.tldp.org/Manuales-LuCAS/doc-guia-usuario-ruby/guia-usuario-ruby.pdf

[2] https://www.paradigmadigital.com/dev/el-indice-tiobe-como-medir-que-lenguajes-de-

programación-son-los-más-usados/

[3] http://administraciondesistemas.pbworks.com/f/Manual_PHP5_Basico.pdf

[4] http://blog.rodrigortiz.com/wp-content/uploads/2011/08/Manual-de-Referencia-de-Lua-5.11.pdf

[5]. http://www.alegsa.com.ar/Dic/lenguaje%20interpretado.php 

[ 6 ].  https://www.python.org/about/quotes/

[7]. http://www.enterate.unam.mx/Articulos/2006/abril/perl.htm 

[8]. http://www.cristinaalcantarilla.com/sandboxing-un-aislamiento-de-procesos/ 

[9]. http://www.palentino.es/blog/el-sandbox-aislamiento-local-web-herramientas/

[10] http://nuevastendsw.blogspot.com.co/2010/03/cuadro-comparativo.html

[11] http://desarrollowebydesarrolloweb.blogspot.com.co/2015/02/tabla-comparativa-de-los-lenguajes-de.html

[12] http://claudiadaw.blogspot.com.co/2012/08/comparacion-de-lenguajes-de.html

[13] http://evoluciondelasaplicacionesweb.blogspot.com.co/2015/02/tabla-comparativa-de-los-lenguajes-de.html

Modelo Vista Controlador

El patrón de arquitectura MVC (Modelo Vista Controlador) es un patrón que define la organización independiente del Modelo, la Vista, y el Controlador; Así, se divide el sistema en tres capas: la encapsulación de los datos, la interfaz o vista, y la lógica interna o controlador.

Es un patrón de arquitectura en cuya filosofía está el hacer una separación entre la lógica de negocio, la interfaz presentada al usuario, y el modulo encargado de gestionar los eventos y las comunicaciones.

Está compuesto por:

MODELO:

  • Contiene el núcleo de la funcionalidad de la aplicación; su dominio.
  • Encapsula el estado de la aplicación.
  • No sabe nada, es decir, es independiente del Controlador y la Vista.

VISTA:

  • Es la presentación del Modelo.
  • Puede acceder al Modelo pero nunca cambiar su estado
  • Puede ser notificada cuando hay un cambio de estado en el Modelo.

CONTROLADOR:

  • Reacciona a la petición del Cliente, ejecutando la acción adecuada y creando el modelo pertinente.

El modelo, la vista y el controlador deben comunicarse de una manera estable los unos con los otros, de manera que sea coherente con las interacciones que el usuario realiza. La comunicación entre la vista y el controlador es bastante básica pues están diseñados para operar juntos, pero los modelos se comunican de una manera diferente, un poco más sutil.

Sistema de Empleos en Colombia – TDS

A continuación, un análisis de los elementos sistémicos del sistema de empleos en Colombia

a.  Sistema: Sistema de empleos en Colombia 

La dinámica de un mercado laboral se puede interpretar como la dinámica entre una oferta y una demanda, así como los productos de consumo, bursátiles, monetarios, entre otros. En este caso la dinámica explica la existencia de una oferta de empleo determinada por la participación de las personas en el mercado laboral en busca de un empleo, y la existencia de una demanda laboral determinada por las vacantes que genera el sistema productivo y que pueden ser ocupadas por las personas que ofrecen su fuerza de trabajo.

El gobierno nacional, a través de entidades especiales, busca formular, adoptar y orientar la política pública en materia laboral que contribuya a mejorar la calidad de vida de los colombianos, para garantizar el derecho al trabajo decente, mediante la identificación e  implementación de estrategias de generación y formalización de empleo. [1]

b. Sistema Abierto: el empleo en Colombia es un sistema abierto el cual necesita entradas, y recursos tales como personal humano, recursos económicos y proporciona unas salidas como productos, dinero, conocimiento.

c. Sistema Cerrado: no es un sistema cerrado, ya que está en continua interacción con el entorno.

 d. Recursividad:  Dentro de la dinámica que se maneja en el sistema de empleos colombiano, en cada uno de sus sectores puede verse un subsistema que maneja y se relaciona con esta dinámica de forma recursiva.

e. Jerarquía: la jerarquía que se puede encontrar en los empleos en Colombia es :

* SIstema de empleos colombiano

** Sistema de empleos privados y/o públicos

**** Sistema de los sectores económicos [ejm: primario, secundario, terciario]

**** Sistema de las actividades económicas [ejm: primario:agropecuario]

***** Sistema de tipos de empleos

f. Entorno: podemos decir que es la sociedad colombiana, ya que el empleo se encuentra presente en casi todo el país, con lo cual es generado por alguno de los sectores involucrados en este sistema de empleos.

g. Entradas: En las entradas de este sistema se pueden observar recursos económicos, recursos humanos, conocimiento.

 h. Proceso: El proceso que se sigue para que haya un buen funcionamiento del sistema es el de selección de los empleados, capacitaciones, evaluación, motivación.  

 i. Salidas: progreso del país, recursos económicos, conocimiento, vacantes

 j. Relaciones: las relaciones que existen entre los sectores es el de brindar y tomar recursos, el sector primario produce recursos obtenidos directamente de la naturaleza, el sector industrial toma estos recursos y los transforma en productos y por último el sector de servicios los utiliza.

 k. Contexto: el desempleo en Colombia en el  cual existen organismos de control , administración que gestionan ,respaldan la generación de empleo con ayuda de empresas y sectores de ocupación.

m. Retroalimentación (Positiva – Negativa): inversiones, conocimiento, recursos económicos.

 n. Homeostasis: se puede observar en las acciones que toma el gobierno en caso que los sectores sean afectados, por ejemplo cuando el gobierno invierte recursos económicos en los sectores, esto hace que no haya un desequilibrio total y se mantenga una estabilidad laboral.

 o. Entropía (Positiva – Negativa) : entropía negativa se ve reflejada en los desvíos de recursos, incumplimiento de responsabilidades asignadas, desconocimiento de tareas asignadas en puestos de trabajo.

Entropía positiva la podemos ver en el nacimiento de nuevas empresas bien estructuradas, con objetivos claros, inversiones de capital a los subsistemas. 

p. Información del Sistema: El sistema se enfrenta constantemente a cambios en su entorno que llegan a provocar crisis. Para poder combatir esta situación deben desarrollarse fórmulas o métodos eficaces que ayuden a solucionar las diferentes problemáticas.

En cada uno de estas se genera nueva información que el sistema usará para dar soluciones. La información nueva  no elimina información pasada, sino que la agrega.

q. organicidad : La organicidad en el sistema la podemos observar en que este trata de que no haya un  caos dentro del mismo, por ejemplo tratando de manejar bien los recursos que se tienen para poder generar empleos y no haya un desbalance que pueda causar desorden. la organicidad en el sistema de empleos es algo evidente ya que si no tuviera esta propiedad esté sistemas estaría en caos con lo cual habría un desequilibrio en el país porque se rompería la estructura que ayuda a que el país sea sostenible.

r. Isomorfismo : un sistema isomorfo al sistema de empleo , sería el sistema colegio en donde hay educación en vez de empleo 

***** un sistema isomorfo al sistema de empleos puede ser el sistema de educación, el cual es algo similar al de empleos, mirándolo desde la perspectiva de entradas como personal, conocimiento, y los procesos de transformación que ocurren dentro del sistema de educación, generando más conocimiento..

s. Totalidad: En este sistema se puede observar la totalidad mirandolo de la forma en que cada una de las partes que lo conforman(sectores), por sí solas no podría causar el efecto de generación de empleos que se ofrece si todos trabajan para un mismo fin como un solo sistema. 

como un ejemplo se puede observar las dependencias que existen entre el sector agropecuario y el industrial, el agropecuario genera recursos para que el industrial los pueda procesar, si no hay esta generación de recursos, el empleo en el sector industrial disminuye afectando el sistema completo generando resultados insatisfactorios. 

t. Objetivo: mantener una economía sostenible para mejorar la calidad de vida de los ciudadanos y ayudar al progreso del país. 

u. Equifinalidad: Teniendo en cuenta que el sistemas es abierto, se puede hablar de equifinalidad con lo cual el sistema mantiene el mismo propósito independiente de los caminos que tomé para llegar a él, por ejemplo generando empleos de medio tiempo, tiempo completo son formas diferentes de generación de empleo, pero las dos están dirigidas a ayudar a mejorar la calidad de vida de las personas, sea por el camino del empleo de medio tiempo o del de tiempo completo, se llega a este objetivo planteado.

 El sistema mantiene el mismo propósito independiente de los procesos que use para llegar a ese fin

v. Límites del sistema: El país de Colombia, ya que los empleos están presentes en prácticamente todo el territorio nacional. se toma principalmente el país como límite teniendo en cuenta los empleos generados dentro de este y que las personas estén trabajando presencialmente dentro del país, aunque pueden haber excepciones de personas que trabajan fuera de él, pero contratados para el país estos estarían fuera de este límite.   

w. Subsistemas: Los subsistemas que podemos identificar son :sector agropecuario, sector industrial, sector de servicios, los cuales se relacionan para aportar al buen funcionamiento del sistema de empleos en colombia.

x. Supra sistema: El sistema de empleos en colombia pertenece a un sistema más grande que es el sistema de ministerio de trabajo, este contiene y regula las relaciones laborales, empleo y seguridad social.

y. Sinergia: todos los subsistemas trabajan juntos para lograr una estabilidad en el empleo, ya que si se escogen por separado el empleo en Colombia no daría resultados positivos.

z. recursos: leyes (Ley Nº 20.001, Ley Nº 10.475), tecnología, infraestructura.

BIBLIOGRAFIA

1 – http://www.mintrabajo.gov.co/el-ministerio/quienes-somos/mision-vision-y-objetivos.html

Clasificación de los Lenguajes de Programación

Los lenguajes de programación son conjuntos de símbolos y reglas, los cuales su principal función es crear procesos y software.
Estas funciones lo que hacen es darle instrucción es a la máquina para que esta envié una respuesta

Proceso de Traducción

2016-04-08.png

Lenguajes Ensamblados

Se refiere al lenguaje ensamblador. Constituye la representación más directa del código máquina (0-1).

Aún hoy se utiliza en la programación de handler o manipuladores de dispositivos de hardware.

Características:

  • Posee una cierta dificultad de ser entendido por un ser humano
  • Es difícilmente portable
  • Son generalmente más rápidos
  • Se tiene un control muy preciso de las tareas realizadas por un Microprocesador
  • Se puede controlar el tiempo que tarda una rutina en ejecutarse
  • Es un código estructurado desarrollado sobre un archivo de programación (.ASM)

Lenguaje Ensamblador

Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que corresponde al flujo de órdenes ejecutables que pueden ser cargadas en la memoria de un sistema basado en microprocesador.

La instrucción binaria

  • Binario:  10110000 01100001 (Hexadecimal:  0xb061)

La representación en lenguaje ensamblador es más fácil de recordar:

  • MOV al, 061h

Lenguajes Interpretados

Es el lenguaje cuyo código no necesita ser preprocesado mediante un compilador, eso significa que el ordenador es capaz de ejecutar la sucesión de instrucciones dadas por el programador sin necesidad de leer y traducir exhaustivamente todo el código, para hacer esto posible se necesita un intermediario, un programa encargado de traducir cada instrucción escrita con una semántica “humana” a código máquina, el programa es un intérprete, y este además se encarga de automatizar algunas tareas típicas de un programador como declaraciones de variables o dependencias. Entre los principales lenguajes de este tipo están Java, Perl, Python, Ruby, ASP, Bash. Por lo general, los lenguajes interpretados son de alto nivel y están orientados a objetos y eventos, lo que facilita la programación web y la programación cliente/servidor.

Ventajas

La principal es que es independiente de la máquina y del sistema operativo ya que no contiene instrucciones propias de un procesador sino que contiene llamadas a funciones que el intérprete deberá conocer, es decir es multiplataforma.

Desventajas

La velocidad es menor, este es el aspecto más notable, se debe evaluar muy bien al crear software con este tipo de lenguajes, pues se debe equilibrar la portabilidad con la velocidad que se está sacrificando.

Lenguajes de Programación Compilados

Necesitan de un compilador.
Ventajas

  • Rápida ejecución.
  • Independencia del lenguaje y compilador.
  • Mejora la seguridad.
  • El código se compacta en un solo archivo.


Desventajas

  • Poca flexibilidad.
  • Espacio en el disco.
  • Requiere de un compilador.

¿Qué es un Compilador?

Proceso de transformación de un programa fuente a un programa ejecutable

Lenguaje de Programación Preprocesado

Ventajas:

  • Permite ser interpretado en diferentes plataformas y arquitecturas.
  • Generalmente es empleado con el fin de obtener optimización y portabilidad en las aplicaciones.
  • La ejecución es más rápida comparada con el lenguaje interpretado.

Desventajas:

  • La ejecución es más lenta comparada con el lenguaje compilado.
  • Por requerir ser traducido a un lenguaje intermedio y luego al lenguaje de máquina, esto provoca pérdida en la eficiencia en la ejecución.

Proceso de traducción a un lenguaje intermedio de más bajo nivel

Preprocesado.jpg

Lenguajes de uso común

  • Lisp
  • Delphi
  • Java
  • Visual C#
  • Visual J#