You are on page 1of 9

LENGUAJES DE PROGRAMACION

Abstract - Programming languages are like human languages


have syntactic and semantic rules to define the meaning of each
of its processes, which the programmer whether to find the
most understandable by the user and also we can find various
types of languages either low, high or very high level, we also
find the Compilers and Interpreters who do the heavy
lifting of Binary language Translate to the language of the
processor. This program will also adjusting from the earliest
times to the Present, (As one of the most important
branches and without saying it is the most fundamental so that
everything can happen with a simple click of the User).

Key Words Programming language, Low Level, High Level,
Compilers, Interpreters.

Resumen- Los lenguajes de Programacin son como los
lenguajes humanos, tienen reglas sintcticas y semnticas, para
definir el significado de cada uno de sus procesos, el cual el
programador en si debe encontrar la forma ms entendible por el
usuario y adems nos podemos encontrar con varios tipos de
lenguajes ya sea de bajo, de alto o de muy alto nivel, tambin
encontramos los Compiladores e Intrpretes quienes hacen el
trabajo pesado de Traducir al Lenguaje Binario, al lenguaje del
Procesador. As tambin la programacin se va adecuando de los
tiempos ms Remotos a la Actualidad, (Siendo una de las ramas
ms importantes y sin decir que es la ms fundamental para que
todo pueda suceder por un simple click del Usuario).

Palabras Claves Lenguaje de Programacin, Bajo Nivel,
Alto Nivel, Compiladores, Intrpretes.


I. INTRODUCCIN LENGUAJES DE PROGRAMACIN
as personas para comunicarse entre s utilizan un
lenguaje que puede ser oral o escrito.
En general, para comunicar algo siempre se usa un
lenguaje.
La informtica no queda excluida del uso de lenguajes, ya que
estos son la manera de especificar las acciones que se desea
sean realizadas en la computadora. En otras palabras, son la
interface entre el programador y la computadora. A travs de
ellos podemos desarrollar programas o aplicaciones, que se
componen por un conjunto de instrucciones que luego se
ejecutarn en la computadora haciendo uso de sus recursos
(CPU, memoria, disco, etc.).

Los lenguajes de programacin estn destinados a
distintos mbitos, dependiendo de sus caractersticas que
simplifican algunas tareas y complejizan otras. Pueden estar


destinados a aplicaciones cientficas, aplicaciones de negocios,
inteligencia artificial, programacin de sistemas,

Scripting, y tambin disponemos de lenguajes de propsitos
especiales. Los lenguajes de programacin tienen una
estructura compleja que se compone de varias partes: sintaxis,
semntica, elementos del lenguaje, nivel de abstraccin,
paradigma, estructuras de control para ordenar la ejecucin de
los programas, tipos de datos (nmeros, letras, etc.), y
funciones o procedimientos (unidades) que contienen un
conjunto de instrucciones, entre otras. No hay un nico tipo de
lenguajes, sino que se clasifican segn las caractersticas que
posean y segn el paradigma y conceptos que soporten.

Por su nivel:
- Mquina
- Bajo nivel.
- Alto nivel.
- Muy Alto nivel

Por su jerarquizacin:
- Primera generacin.
- Segunda generacin.
- Tercera generacin.
- Cuarta generacin.
- Quinta generacin.

Vern una tabla comparativa entre algunos lenguajes,
encontrando sus ventajas y desventajas, todo para una mejor
manera de comprensin.


Al final de ste paper nos daremos cuenta de que nos
presentamos con una forma de comunicacin entre hombre -
mquina, teniendo ya conocimientos de su forma, y uso en el
mbito de la programacin.

II. LA CLASIFICACIN Y SUS CARACTERSTICAS

A pesar de no tener mucho tiempo de duracin, la historia de
la computacin electrnica produjo una interminable lista de
variedad de lenguajes para programacin muy reconocibles y
en uso actual. En sus inicios estos lenguajes se parecan
mucho al lenguaje de las computadoras como lo es el lenguaje
maquina que consiste en ceros y unos, pero con el tiempo han
ido cambiando hasta asimilarse ms a un lenguaje humano y
Autores: Carlos Gonzlez, Alexis Romo, Jhonatan Barrientos y Francisco Gonzlez.
Pontificia Universidad Catlica de Valparaso, Chile.
Escuela de Ingeniera Informtica.


Paper Lenguajes de Programacin
L
LENGUAJES DE PROGRAMACION
cotidiano ms especficamente el ingls o bien a formas
grficas ms expresivas y sintticas. Mientras ms se parezca
un lenguaje al de la computadora se le clasifica como un
lenguaje de bajo nivel, lo opuesto es de alto nivel .Existen
cinco generaciones de lenguajes de programacin, en donde
cada uno mejora a sus predecesores en cuanto a las facilidades
que otorga al programador.

1.
Lenguaje mquina.2. Lenguajes ensambladores.3. Lenguajes
de alto nivel.4. Lenguajes de muy alto nivel.5. Lenguajes
naturales.
Lenguaje Mquina

Es el lenguaje de ms bajo nivel, a travs de un sistema
binario que consiste en 0s y 1s muestra datos e instrucciones,
y el elemento ejecutor es la circuitera misma de la
computadora. Al principio de la comunicacin electrnica
cada mquina tena su propio lenguaje, lo que complicaba a
los programadores que tenan sistemas rudimentarios para
combinar nmeros que representaran las instrucciones ms
simples como SUMAR y COMPARAR. Los mtodos de
programacin en este lenguaje ocupan mucho tiempo adems
de ser poco prcticos, por lo que en poco tiempo los
programadores comenzaron a ocupar los lenguajes
ensambladores.

Lenguajes Ensambladores

Los lenguajes ensambladores significaron un gran avance; en
lugar de ceros y unos se utilizan cdigos mnemnicos (para
ayudar a la memoria) o abreviatura fciles de recordar para las
instrucciones: ADD (sumar), STO (almacenar), C (comparar),
etctera. Para usar un lenguaje ensamblador se requiere un
lenguaje traductor que convierta los programas en
ensamblador a lenguaje mquina que es el nico que
comprende la computadora. Este traductor se llama programa
ensamblador. An cuando los ensambladores representaron un
paso adelante, todava tenan muchos inconvenientes, por
ejemplo, que son detallados en extremo y su programacin es
tediosa, repetitiva y propensa al error.

Lenguaje de alto nivel. Se separaran en tres generaciones
3GL.

La investigacin sobre los lenguajes de alto nivel se inicia en
1945, con el ingeniero alemn Konrad Zuse, pero hasta el
inicio de los 1960 que se generaliza su uso, transformando
radicalmente la actividad de la programacin. Estos lenguajes
se asemejan ms a la lengua humana, particularmente el
ingls, con menos detalles y con menos declaraciones
describen tareas ms complejas para la computadora. Como
resultado, los programadores logran trabajos de mayor alcance
y con menos esfuerzo. Obviamente se requiere de un traductor
de las declaraciones simblicas de un lenguaje de alto nivel al
lenguaje mquina ejecutable por la computadora, estos
traductores se llaman compiladores (el primero se desarrollo
en 1952). Existen compiladores para cada lenguaje y cada
mquina, pero una ventaja de los lenguajes de alto nivel es que
se pueden trasladar de una mquina a otra con pocas o nulas
modificaciones .Entre los lenguajes de esta generacin se
encuentran los de propsito general como BASIC, FORTRAN
y COBOL que han sido muy populares. Adems se encuentran
Pascal, C y sus derivados.
En los primeros lenguajes de alto nivel la limitacin era que se
orientaban a un rea especfica y sus instrucciones requeran
de una sintaxis predefinida. Se clasifican como lenguajes
procedimentales.
Otra limitacin de los lenguajes de alto nivel es que se
requiere de ciertos conocimientos de programacin para
realizar las secuencias de instrucciones lgicas.
Para que el usuario comn pudiese solucionar tal problema de
procesamiento de datos de una manera ms fcil y rpida. Se
crearon Los lenguajes de muy alto nivel cuarta generacin
(4GL).
Los lenguajes de la cuarta generacin, 4GLs, son llamados
lenguajes de muy alto nivel. Se trata esencialmente de los
lenguajes de programacin taquigrficos;
Entre las caractersticas de estos lenguajes est el que no son
de procedimientos. En los lenguajes de procedimientos se dice
con detalle a la computadora la tarea a realizar. En los
declarativos se define solamente lo que se va hacer. Enfatizan
el qu en lugar del cmo.

Este lenguaje puede ser usado con un mnimo de
entrenamiento y ahorran al usuario la necesidad de conocer a
fondo el hardware y la programacin. Entre los inconvenientes
de estos lenguajes se encuentra que no hacen uso eficiente de
los recursos computacionales.
Sin embargo

A menudo no cumplen con estndares internacionales ISO
ANSI. Por este motivo, invertir tiempo y dinero, es un riesgo a
futuro, porque no se sabe a ciencia cierta, cunto tiempo
permanecer la herramienta y su fabricante, en el mercado.


Lenguaje Natural
En la quinta generacin se encuentran los llamados Lenguajes
naturales, por su acercamiento a la lengua escrita. El uso de un
lenguaje natural con una base de conocimientos produce un
sistema basado en el conocimiento.
O sea emplean la programacin con restricciones para
resolver problemas, en lugar de emplear algoritmos escritos
por el programador.
1a
Codigo Binario
2a
Ensamblador
3a
Orientado a "x" Funciones
LENGUAJES DE PROGRAMACION
Una clase de estos sistemas son los Sistemas expertos, que
son base de la Inteligencia Artificial. (IA). Japn ha sido
pionero en este tipo de lenguajes pero sus xitos prcticos han
sido pocos. Muchos conocedores opinan que los sistemas
expertos han sido fracaso lo que ha llevado el nombre de esta
generacin en desuso, pero es probable que encuentren nuevos
rumbos de evolucin.

III. VENTAJAS Y DESVENTAJAS DE LENGUAJES DE
PROGRAMACIN.

Lenguaje de Programacin C:

C es un lenguaje de programacin creado en 1972 por
Dennis M. Ritchie en los Laboratorios Bell como evolucin
del anterior lenguaje B, a su vez basado en BCPL.

Al igual que B, es un lenguaje orientado a la
implementacin de Sistemas Operativos, concretamente Unix.
C es apreciado por la eficiencia del cdigo que produce y es el
lenguaje de programacin ms popular para crear software de
sistemas, aunque tambin se utiliza para crear aplicaciones.

Se trata de un lenguaje dbilmente representado de medio
nivel pero con muchas caractersticas de bajo nivel. Dispone
de las estructuras tpicas de los lenguajes de alto nivel pero, a
su vez, dispone de construcciones del lenguaje que permiten
un control a muy bajo nivel. Los compiladores suelen ofrecer
extensiones al lenguaje que posibilitan mezclar cdigo en
ensamblador con cdigo C o acceder directamente
a memoria o dispositivos perifricos.

La primera estandarizacin del lenguaje C fue en ANSI, con
el estndar X3.159-1989. El lenguaje que define este estndar
fue conocido como ANSI C. Posteriormente, en 1990, fue
Certificado como estndar ISO (ISO/IEC 9899:1990). La
adopcin de este estndar es muy amplia por lo que, si los
programas creados lo siguen, el cdigo es porttil entre
plataformas y/o arquitecturas.

Ventajas C:
* Un ncleo del lenguaje simple, con funcionalidades
aadidas importantes, como funciones matemticas y de
manejo de archivos, proporcionadas por bibliotecas.
* Es un lenguaje muy flexible que permite programar con
mltiples estilos. Uno de los ms empleados es el estructurado
"no llevado al extremo" (permitiendo ciertas licencias de
ruptura).
* Un sistema de tipos que impide operaciones sin sentido.
* Usa un lenguaje de pre-procesado, el preprocesador de C,
para tareas como definir macros e incluir mltiples archivos
de cdigo fuente.
* Acceso a memoria de bajo nivel mediante el uso de
punteros.
* Interrupciones al procesador con uniones.
* Un conjunto reducido de palabras clave.
* Tipos de datos agregados (struct) que permiten que datos
relacionados (como un empleado, que tiene un id, un nombre
y un salario) se combinen y se manipulen como un todo (en
una nica variable "empleado"

Desventajas de C:
* Recoleccin de basura nativa, sin embargo se encuentran a
tal efecto bibliotecas como la "libgc" desarrollada por Sun
Microsystems, o el Recolector de basura de Boehm.
* Soporte para programacin orientada a objetos, aunque la
TABLE I
UNITS FOR MAGNETIC PROPERTIES
Symbol Quantity
Conversion from Gaussian and
CGS EMU to SI
a

u magnetic flux 1 Mx 10
8
Wb = 10
8
V s
B magnetic flux density,
magnetic induction
1 G 10
4
T = 10
4
Wb/m
2
H magnetic field strength 1 Oe 10
3
/(4t) A/m
m magnetic moment

1 erg/G = 1 emu
10
3
A m
2
= 10
3
J/T
M magnetization 1 erg/(G cm
3
) = 1 emu/cm
3

10
3
A/m
4tM magnetization 1 G 10
3
/(4t) A/m
o specific magnetization 1 erg/(G g) = 1 emu/g 1 A m
2
/kg
j magnetic dipole
moment
1 erg/G = 1 emu
4t 10
10
Wb m
J magnetic polarization 1 erg/(G cm
3
) = 1 emu/cm
3

4t 10
4
T
_, k susceptibility 1 4t
_
mass susceptibility 1 cm
3
/g 4t 10
3
m
3
/kg
permeability 1 4t 10
7
H/m
= 4t 10
7
Wb/(A m)
r relative permeability r
w, W energy density 1 erg/cm
3
10
1
J/m
3





Fig.1. Este Grfico Indica una Gran Diferencia entre el lenguaje java y (C,
C++, Python), quedando a una Brecha ms Corta con otros lenguajes de
Programacin, siguindole PHP.
6%
Tabla de Evolucin de los Lenguajes de
Programacin

LENGUAJES DE PROGRAMACION
implementacin original de C++ fue un preprocesador que
traduca cdigo fuente de C++ a C.
* Encapsulacin.
* Funciones anidadas, aunque GCC tiene esta caracterstica
como extensin.
* Polimorfismo en tiempo de cdigo en forma de sobrecarga,
sobrecarga de operadores y slo dispone de un soporte
rudimentario para la programacin genrica.
* Soporte nativo para programacin multihilo y redes de
computadores.

Lenguaje de Programacin Visual Basic:

Visual Basic es uno de los tantos lenguajes
de programacin que podemos encontrar hoy en da.
Dicho lenguaje nace del BASIC (Beginners All-purpose
Symbolic Instruction Code) que fue creado en su versin
original en el Dartmouth College, con el propsito de servir a
aquellas personas que estaban interesadas en iniciarse en algn
lenguaje de programacin. Luego de sufrir varias
modificaciones, en el ao 1978 se estableci el BASIC
estndar. La sencillez del lenguaje gan el desprecio de los
programadores avanzados por considerarlo "un lenguaje para
principiantes".
Primero fue GW-BASIC, luego se transform en
QuickBASIC y actualmente se lo conoce como Visual Basic y
la versin ms reciente es la 6 que se incluye en el paquete
Visual Studio 6 de Microsoft. Esta versin combina la
sencillez del BASIC con un poderoso lenguaje de
programacin Visual que juntos permiten desarrollar
robustos programas de 32 bits para Windows. Esta fusin de
sencillez y la esttica permiti ampliar mucho ms el
monopolio de Microsoft, ya que el lenguaje slo es compatible
con Windows, un sistema operativo de la misma empresa.
Visual Basic ya no es ms "un lenguaje para principiantes"
sino que es una perfecta alternativa para los programadores de
cualquier nivel que deseen
desarrollar aplicaciones compatibles con Windows.
Ventajas de Visual Basic:
* Es un lenguaje RAD.
* Posee una curva de aprendizaje muy rpida.
* Integra el diseo e implementacin de formularios de
Windows.
* Permite usar con suma facilidad la plataforma de los
sistemas Windows.
* El cdigo en Visual Basic es fcilmente llevado a otros
lenguajes.
* Acostumbra a los desarrolladores a programar con
eficiencia.
Desventajas de Visual Basic:
* No permite programacin a bajo nivel ni incrustar secciones
de cdigo en ASM.
* Slo permite el uso de funciones de libreras dinmicas
(DLL) stdcall.
* Algunas funciones estn indocumentadas (Sin embargo esto
ocurre en muchos lenguajes).
* Es un lenguaje basado en objetos y no orientado a objetos.
* No maneja muy bien los apuntadores de memoria.
* No soporta tratamiento de procesos como parte del
lenguaje.
* No incluye operadores de desplazamiento de bits como parte
del lenguaje.
* No tiene instrucciones de pre procesamiento.
* El tratamiento de mensajes de Windows es bsico e
indirecto.
Lenguaje de Programacin Java:
En 1990, la empresa Sun Microsystems, tras el abandono del
proyecto NeWS (Network/extensible Window System), decide
crear un pequeo grupo de programadores cuyo objetivo es
desarrollar un nuevo lenguaje destinado al campo de la
electrnica de consumo, especialmente electrodomsticos.
Este proyecto se conoca como Green Project. A la cabeza del
grupo se encontraba el programador James Goslin.
Java hubiese quedado reducido a un lenguaje para programar
los chips de diversos electrodomsticos si no hubiese sido por
una fuerza emergente que empez a dar sus primeros pasos,
tambin a principios de los aos 90: la World Wide Web
(WWW).
Ventajas de Java:
* No debes volver a escribir el cdigo si quieres ejecutar el
programa en otra mquina. Un solo cdigo funciona para
todos los browsers o Buscadores compatibles con Java o
donde se tenga una Mquina Virtual de Java (Mac's, PC's,
Sun's, etc).
* Java es un lenguaje de programacin orientado a objetos, y
tiene todos los beneficios que ofrece esta metodologa de
programacin.
* Un browser o Buscador compatible con Java deber
ejecutar cualquier programa hecho en Java, esto ahorra a los
usuarios tener que estar insertando "plug-ins" y
dems programas que a veces nos quitan tiempo y espacio en
disco.
* Java es un lenguaje y por lo tanto puede hacer todas las
cosas que puede hacer un Lenguaje: Clculos matemticos,
procesadores de palabras, bases de datos, aplicaciones
grficas, animaciones, sonido, hojas de clculo, etc.
* Si lo que te interesan son las pginas de Web, ya no tienen
LENGUAJES DE PROGRAMACION
que ser estticas, se le pueden poner toda clase de
elementos multimedia y permiten un alto nivel de
interactividad.
Desventajas de Java:
* La velocidad:
Los programas hechos en Java no tienden a ser muy rpidos,
supuestamente se est trabajando en mejorar esto. Como los
programas de Java son interpretados nunca alcanzan
la velocidad de un verdadero ejecutable.
* Java es un lenguaje de programacin. Esta es otra gran
limitante, por ms que digan que es orientado a objetos y que
es muy fcil de aprender sigue siendo un lenguaje y por lo
tanto aprenderlo no es cosa fcil. Especialmente para los no
programadores.
* Java es nuevo. En pocas palabras todava no se conocen
bien todas sus capacidades.
Pero en general Java posee muchas ventajas y se pueden
hacer cosas muy interesantes con esto. Hay que prestar
especial atencin a lo que est sucediendo en el mundo de
la computacin, a pesar de que Java es relativamente nuevo,
posee mucha fuerza y es tema de moda en cualquier medio
computacional. Muchas personas apuestan a futuro y piensan
en Java. La pregunta es: Estarn en lo correcto?
(Para Ustedes Lectores).
IV. COMPILADORES E INTRPRETES.

Compilador:
Proceso de traduccin que convierte un programa fuente
escrito en un lenguaje de alto nivela un programa objeto en
cdigo mquina y listo por tanto para ejecutarse en el
ordenador, con poca o ninguna preparacin adicional.







Conceptos Relacionados








Intrprete:

Un intrprete es un programa que analiza y ejecuta
simultneamente un programa escrito en un Lenguaje fuente.
Existen diferentes tipos de Intrpretes:

* Puros:

Los intrpretes puros son los que analizan y ejecutan
sentencia a sentencia todo el programa fuente. Siguen el
modelo de interpretacin iterativa y, por tanto, se utilizan
principalmente para lenguajes sencillos.

* Avanzados:

Los intrpretes avanzados o normales incorporan un paso
previo de anlisis de todo el programa fuente. Generando
posteriormente un lenguaje intermedio que es ejecutado por
ellos mismos.

* Incrementales:

Existen ciertos lenguajes que, por sus caractersticas, no se
pueden compilar directamente. La razn es que pueden
manejar objetos o funciones que no son conocidos en tiempo
de compilacin, ya que se crean dinmicamente en tiempo en
ejecucin. Entre estos lenguajes, pueden considerarse
Smalltalk, Lisp o Prolog.











Fig.2: Esquema General de Un Interprete

V. REAS DE APLICACIN DE LOS LENGUAJES DE
PROGRAMACIN.
El hombre, con el avanzar de los aos, ha podido desarrollar
los lenguajes de programacin de manera que puedan se
puedan aplicar en distintas reas. De tal forma que se le
pueden dar muchas utilidades, tales como:

i) Lenguajes de Internet.
ii) Lenguajes de programacin imperativa.
iii) Lenguajes de programacin orientados a objetos.
iv) Lenguajes de programacin lgica.
v) Lenguajes de programacin funcionales.

LENGUAJES DE INTERNET:
LENGUAJES DE PROGRAMACION
Estos lenguajes son ocupados para la creacin de pginas Web
de Internet, y realizar su programacin (motores de bsqueda,
seguridad, establecimiento de comunicaciones, etc.).
Actualmente existen diferentes de estos lenguajes que han ido
surgiendo debido a las tendencias y necesidades de las
plataformas.


La arquitectura comn de estos lenguajes es la siguiente:

Navegador Lenguaje Base de datos
(Cliente) (Servidor)
Dentro de esta rea encontramos los siguientes:
- HTML
- JavaScript
- PHP
- ASP
- Python
- Ruby
- Perl

LENGUAJES DE PROGRAMACION IMPERATIVA:
La programacin imperativa describe la programacin en
trminos del estado del programa y sentencias que cambian
dicho estado. Estos programas son un grupo de instrucciones
que le indican al computador como realizar una tarea.
La implementacin de hardware de la mayora de los
computadores es imperativa ya que los hardwares de estos
estn diseados para ejecutar cdigo maquina, escrito en
forma imperativa.
Algunos lenguajes imperativos son:
- ASP
- BASIC
- C
- FORTRAN
- Pascal
- Perl
- PHP
- Lua
- Java

LENGUAJES DE PROGRAMACION ORIENTADOS A
OBJETOS:
Estos lenguajes ocupan objetos y sus interacciones, para poder
disear aplicaciones y programas informticos. Surgieron en
los aos 70 con el lenguaje Simula 67 el cual fue creado para
hacer simulaciones. En la actualidad Smalltakl es el lenguaje

que representa la orientacin a objetos ya que permite realizar
tareas de computacin interactuando con objetos virtuales, ya
que provoca que los objetos se comuniquen entre s mediante
el envi de mensajes, as mismo el objeto puede proveer
muchas operaciones; este lenguaje a tenido gran influencia en
lenguajes como Java o Ruby.
Aqu encontramos lenguajes como:
Ada
C++
C#
- VB.NET
- Clarion
- Delphi
- Eiffel
- Java
- Lexico
- Oz
- PHP
- PowerBuilder
- Python
- Ruby
- Smalltalk
LENGUAJES DE PROGRMACION LOGICA:
La programacin lgica se basa en la relacin de elementos
matemticos; esta programacin encuentra su hbitat natural
en aplicaciones de inteligencia artificial o aplicaciones
relacionadas a este mbito. Los lenguajes de programacin
lgica actualmente se usan como tecnologa software para la
descripcin y resolucin de problemas combinatorios difciles,
especficamente en reas de planificacin y programacin de
tareas (calendarizacin). Estos lenguajes cumplen tareas
como:
-Dominios booleanos, donde solo existen restricciones del tipo
verdadero/falso.

-Dominios en variables enteras y racionales.

-Dominios lineales, donde slo se describen y analizan
funciones lineales.

-Dominios finitos, donde las restricciones son definidas en
conjuntos finitos.

-Dominios mixtos, los cuales involucran dos o ms de los
anteriores.
El primer lenguaje y ms popular utilizado para tal efecto fue
Prolog. Pero actualmente hay lenguajes de programacin
lgica como:
- B-Prolog (Basado en Prolog, propietario)

LENGUAJES DE PROGRAMACION
- CHIP V5 (Basado en Prolog, tambin existen bibliotecas en
C y C++, propietario)

- Ciao Prolog (Basado en Prolog, software libre: GPL/LGPL)

- ECLiPSe (Basado en Prolog, software libre)

- Mozart (Basado en Oz, software libre: X11)

- SICStus (Basado en Prolog, propietario)
- GNU Prolog (Basado en Prolog, software libre)

- SWI-Prolog Un entorno Prolog que contiene varias libreras
para soluciones con restricciones (LGPL)


LENGUAJES DE PROGRMACION FUNCIONAL:

La programacin funcional se basa en la utilizacin de
funciones aritmticas que no maneja datos mutables o de
estados. El objetivo de estos lenguajes es conseguir lenguajes
expresivos y matemticamente elegantes, en los que no sea
necesario bajar al nivel de la mquina para describir el proceso
llevado a cabo por el programa. Los lenguajes de
programacin funcional han sido enfatizados principalmente
en el mbito acadmico y no tanto en el desarrollo del
software comercial. Lenguajes de programacin importantes
tales como Scheme, Erlang, y Haskell, han sido utilizados en
aplicaciones comerciales e industriales por muchas
organizaciones; pero lenguajes de uso especfico usados
comnmente como SQL y Lex/Yacc, utilizan algunos
elementos de programacin funcional, especialmente al
procesar valores mutables.
Algunos de estos lenguajes son:
- Haskell
- Miranda
- Lisp
- Scheme
- Ocaml
- SAP
- Erlang
- Scala
- Perl
- SQL


Tabla de los principales lenguajes de programacin segn su
utilidad o rea de Aplicacin:












LENGUAJES UTILIDAD
Basic, Pascal Aprendizaje de
programacin
Ada, C, C++ Programacin de
sistemas
Logo Lenguaje didctico
COBOL, RPG, Natural,
SQL
Gestin de empresas
Algol, FORTRAN, APL Calculo Numrico
CLIPPER, ACCES,
DBASE, Delphi, SQL
Bases de datos
LENGUAJES UTILIDAD
Smalltalk, Actor, C++,
Eiffel
Programacin
orientada a objetos
(OOP)
Visual Basic, Visual C Programacin
Windows
HTML, JAVA, PERL Internet
Lingo Programas
multimedia
Prolog, Lisp Inteligencia artificial
VRLM Realidad virtual
Mapper, Cogen, Linc Lenguajes de cuarta
generacin 4GL
LENGUAJES DE PROGRAMACION































VI. COMPARACIN CON OTROS TPICOS
Programas
Caractersticas
JAVA C++
Sencillez S NO
Robustez S NO
Seguridad S NO
Interpretado S NO
Dinamicidad S NO
Portabilidad S NO
Neutralidad S NO
Threds (temas) S No
Garbage
Colection
(recoleccin
automtica de
basura)
S No
Excepciones S ALGUNAS
Representacin ALTA ALTA

1.- LA SENCILLEZ
Java tiene una sencillez que no posee C++. Esto es debido a
que una de las razones de la creacin de Java es la de obtener
un lenguaje parecido a C++ pero reduciendo los errores ms
comunes de la programacin, algo que de logra con mucho
xito puesto que Java reduce un 50% los errores que se
cometen en C++ entre los que se destacan:
- Eliminacin de la aritmtica de punteros y de las
referencias.
- NO se permiten ni la definicin de tipos (typedef) ni
la de macros (#define).
- Ya no es necesario liberar memoria (free o delete).
De todas formas, lo que hace Java en realidad es la
eliminacin de palabras reservadas, y la utilizacin de un
intrprete bastante pequeo.

2.- LA ROBUSTEZ
Java realiza verificaciones en busca de problemas tanto en
tiempo de compilacin como en tiempo de ejecucin, lo que
hace es que se destaquen errores lo antes posible,
normalmente en el ciclo de desarrollo. Algunas de estas
verificaciones que hacen que Java sea un lenguaje robusto son:
- Verificacin del cdigo de byte.
- Gestin de excepciones y errores.
- Comprobacin de punteros y lmites de vectores.
Se aprecia una clara diferencia con C++ quien no realiza
ninguna de estas verificaciones.
3.- LA SEGURIDAD
En Java no se permite los accesos ilegales a la memoria, algo
que si se permita en C++. Esto es algo muy importante puesto
LENGUAJES DE PROGRAMACION
que este tipo de problemas puede ocasionar la propagacin de
virus y otras clases de programas dainos por la red.
El cdigo Java pasa por varios test antes de ejecutarse en una
mquina. El cdigo se pasa a travs de un verificador de
cdigo de byte que comprueba el formato de los fragmentos
de cdigo y aplica un probador de teoremas para detectar
fragmentos de cdigo ilegal, cdigo que falsea punteros, viola
derechos de acceso sobre objetos o intenta cambiar el tipo o
clases de un objeto.
Algunos de los conocimientos que se puede obtener de los
cdigos de byte si pasan la verificacin sin generar ningn de
error son:
- El cdigo no produce desbordamiento de operaciones
en la pila.
- El tipo de parmetros de todos los cdigos es
conocido y correcto.
- No ha ocurrido ninguna conversin ilegal de datos,
tal como convertir enteros en punteros.
Por todo esto, y por no permitir mediante Java la utilizacin de
mtodos de un programa sin los privilegios del ncleo (kernel)
del sistema operativo, la obligacin de autentificacin por
clave pblica para la realizacin de modificaciones, se
considera Java un lenguaje seguro. Todo esto no lo incorpora
C++.
4.- LENGUAJE INTERPRETADO
Java es un lenguaje que puede ejecutar el cdigo directamente
es decir es un lenguaje interpretado. Esto es una
caracterstica que no posee C++. No obstante, y aunque en
teora se consumen menos recursos siendo los lenguajes
interpretados, el actual compilador que existe es bastante
lento, unas 20 veces menos rpido que C++. Esto
normalmente no es vital para la aplicacin ni demasiado
apreciable por el usuario, y adems esta diferencia se est
reduciendo con los nuevos compiladores JIT (Just In Time).
5.- LA DINAMICIDAD
Para la obtencin de un mayor provecho de la tecnologa
orientada a objetos, Java no intenta conectar todos los
mdulos que comprenden una aplicacin hasta el tiempo de
ejecucin. Esta caracterstica no es contemplada por C++, que
enlaza todos los mdulos cuando los compila.
6.- PORTABILIDAD
Un programa Java puede ser ejecutado en varios entornos algo
que es imposible para C++
7.- NEUTRALIDAD
Se dice que Java tiene una arquitectura neutra puesto que
compila su cdigo a un fichero objeto de formato
independiente de la arquitectura de la mquina que de
ejecutar.
Cualquier mquina que tenga el sistema de ejecucin (JRE o
Java Runtime Enviroment) puede ejecutar ese cdigo objeto,
sin importar en modo alguno la mquina en que ha sido
generado.
No es as para C++, donde el cdigo generado podr
ejecutarse nicamente en la plataforma que se gener.
8.- THREADS (TEMAS)
Java permite mltiples hilos (multithreading) antes de su
ejecucin y en tiempo de ejecucin. La posibilidad de
construir pequeos procesos o piezas independientes de un
gran proceso permite programar de una forma ms sencilla y
es una herramienta muy potente que no se ofrece en C++.
9.-RECOLECIN AUTOMATICA DE BASURA
(GARBAGE COLECTION)
Java modifica completamente la gestin de la memoria que se
hace en C/C++. En tanto C++ se utilizan punteros, reservas de
memoria (con las ordenes malloc, new, free, delete) y otra
serie de elementos que dan lugar a graves errores en tiempo de
ejecucin difcilmente depurables.
Java tiene operadores nuevos para reservar memoria para los
objetos, pero no existe ninguna funcin explicita para
liberarla.
La recoleccin de basura (objetos ya inservibles) es una parte
integral de Java durante la ejecucin de sus programas. Una
vez que se ha almacenado un objeto en el tiempo de
ejecucin, el sistema hace un seguimiento del estado del
objeto, el sistema vaca ese espacio de memoria para un uso
futuro.
Esta gestin de memoria dinmica hace que la programacin
en Java sea ms fcil.
10.- REPRESENTACIN
Uno de los objetos perseguidos en el desarrollo de Java era la
obtencin de programas con interfaces cmodas e intuitivas.
Esto tambin se permite en C++, aunque con unos mtodos
ms costosos, y en ningn caso con interfaces portables como
los que Java crea.
VII. CONCLUSIN
Los lenguajes de programacin son el conjunto de
instrucciones que evocan en una tarea computacional a lo
largo de la historia se describen una infinidad de lenguajes
distintos pasando desde el lenguaje maquina que ha permitido
el desarrollo de lenguajes posteriores hasta lenguajes de alto
nivel lo que no ha llevado a un increble avance en trminos
de programacin siendo la base para el avance de otros
disciplinas o reas.
VIII. REFERENCIAS
[1] http://www.monografias.com/trabajos15/computadoras/computadoras.sh
tml
[2] http://www.itimag.com/programacion/ada/caracteristicas-lenguajes-
programacion/
[3] http://issuu.com/masterofwar/docs/lenguajesdeprogramacion
[4] http://www.qualitrain.com.mx/objeIndirecto/javavsvbasic.htm
[5] http://www.monografias.com/trabajos/lengprog/lengprog.shtml
[6] Fundamentos de la Programacin Editorial Mcgraw-hill (ao 2002 3
Generacin, Espaol)
[7] B. Costales. Introduccin al Lenguaje C. Editorial Gustavo Gili, S.A. -
1987. 291 pginas.
[8] B. Kernigham / D. Ritchie. El lenguaje de programacin C. Ed. prentice-
Hall.
[9] Lenguajes de Programacin, Allen B. Tucker, Segunda Edicin
Biblioteca FIN (PUCV)

You might also like