Un lenguaje de programación es un idioma artificial diseñado
para expresar computaciones que pueden ser llevadas a cabo por máquinas como
las computadoras. Pueden usarse para crear programas que controlen el
comportamiento físico y lógico de una máquina, para expresar algoritmos con
precisión, o como modo de comunicación humana.1 Está formado por un conjunto de
símbolos y reglas sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones. Al proceso por el cual se escribe,
se prueba, se depura, se compila y se mantiene elcódigo fuente de un programa
informático se le llama programación.
También la palabra programación se define como el proceso de
creación de un programa de computadora, mediante la aplicación de
procedimientos lógicos, a través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema
en particular.
Escritura de la lógica del programa empleando un lenguaje de
programación específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en
lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos
'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos
engloban a los lenguajes de programación y a otros más, como por ejemplo HTML
(lenguaje para el marcado de páginas web que no es propiamente un lenguaje de
programación, sino un conjunto de instrucciones que permiten diseñar el
contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe
operar una computadora, cómo 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. Una característica relevante de los lenguajes de programación
es precisamente que más de un programador pueda usar un conjunto común de
instrucciones que sean comprendidas entre ellos para realizar la construcción
de un programa de forma colaborativa.
Historia
Para que la computadora entienda nuestras instrucciones debe
usarse un lenguaje específico conocido como código máquina, el cual la máquina
comprende fácilmente, pero que lo hace excesivamente complicado para las
personas. De hecho sólo consiste en cadenas extensas de números 0 y 1.
Para facilitar el trabajo, los primeros operadores de
computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por
palabras o abstracción de palabras y letras provenientes del inglés; éste se
conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de
la palabra inglesa add(sumar). El lenguaje ensamblador sigue la misma
estructura del lenguaje máquina, pero las letras y palabras son más fáciles de
recordar y entender que los números.
La necesidad de recordar secuencias de programación para las
acciones usuales llevó a denominarlas con nombres fáciles de memorizar y
asociar: ADD(sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina),
etc. A esta secuencia de posiciones se le denominó "instrucciones", y
a este conjunto de instrucciones se le llamó lenguaje ensamblador.
Posteriormente aparecieron diferentes lenguajes de programación, los cuales
reciben su denominación porque tienen una estructura sintáctica similar a los
lenguajes escritos por los humanos, denominados también lenguajes de alto
nivel.
La primera programadora de computadora conocida fue Ada
Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en
las matemáticas a Ada quien, después de conocer a Charles Babbage, tradujo y
amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca
completó la construcción de cualquiera de sus máquinas, el trabajo que Ada
realizó con éstas le hizo ganarse el título de primera programadora de
computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido
como homenaje a esta programadora.
A finales de 1953, John Backus sometió una propuesta a sus
superiores en IBM para desarrollar una alternativa más práctica al lenguaje
ensamblador para programar la computadora central IBM 704. El histórico equipo
Fortran de Backus consistió en los programadores Richard Goldberg, Sheldon F.
Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller,
Lois Haibt y David Sayre.2
El primer manual para el lenguaje Fortran apareció en
octubre de 1956, con el primer compilador Fortran entregado en abril de 1957.
Esto era un compilador optimizado, porque los clientes eran reacios a usar un
lenguaje de alto nivel a menos que su compilador pudiera generar código cuyo
desempeño fuera comparable al de un código hecho a mano en lenguaje
ensamblador.
En 1960, se creó COBOL, uno de los lenguajes usados aún en
2010 en informática de gestión.
A medida que la complejidad de las tareas que realizaban las
computadoras aumentaba, se hizo necesario disponer de un método más eficiente
para programarlas. Entonces, se crearon los lenguajes de alto nivel, como lo
fue BASIC en las versiones introducidas en los microordenadores de la década de
1980. Mientras que una tarea tan sencilla como sumar dos números puede
necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto
nivel bastará una sola sentencia.
Lenguaje de bajo
nivel
Un lenguaje de programación de bajo nivel es el que
proporciona un conjunto de instrucciones aritmeticológicas sin la capacidad de
encapsular dichas instrucciones en funciones que no estén ya contempladas en la
arquitectura del hardware.
Interacción Máquina
Vs Humano
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.
Primera generación
El lenguaje de programación de primera generación (por sus
siglas en inglés: 1GL), es el lenguaje de código máquina. Es el único lenguaje
que un microprocesador entiende de forma nativa. El lenguaje máquina no puede
ser escrito o leído usando un editor de texto, y por lo tanto es raro que una
persona lo use directamente.
Segunda generación
El lenguaje de programación de segunda generación (por sus
siglas en inglés: 2GL), es el lenguaje ensamblador. Se considera de segunda
generación porque, aunque no es lenguaje nativo del microprocesador, un
programador de lenguaje ensamblador debe conocer la arquitectura del
microprocesador (como por ejemplo las particularidades de sus registros o su
conjunto de instrucciones).
Lenguajes de medio
nivel.
Un lenguaje de programación de medio nivel se encuentra
entre los lenguajes de alto nivel y los lenguajes de bajo nivel.
Suelen ser clasificados de alto nivel, pero permiten ciertos
manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación
de sistemas operativos, ya que permiten un manejo abstracto (independiente de
la máquina, a diferencia del lenguaje ensamblador), pero sin perder mucho del
poder y eficiencia que tienen los lenguajes de bajo nivel.
Una característica distintiva, por ejemplo, que convierte al
lenguaje de programación C en un lenguaje de medio nivel y al lenguaje de
programación Pascal en un lenguaje de alto nivel, es que en el primero es
posible manejar las letras como si fueran números (en Pascal no), por el
contrario, en Pascal es posible concatenar las cadenas de caracteres con el
operador suma y copiarlas con la asignación (en C es el usuario el responsable
de llamar a las funciones correspondientes).
Una de las características más peculiares del lenguaje de
programación C es el uso de apuntadores, los cuales son muy útiles en la
implementación de algoritmos como listas enlazadas, tablas hashy algoritmos de
búsqueda y ordenamiento que para otros lenguajes de programación (como en el
lenguaje de programación Java, por ejemplo) suelen ser un poco más complicados
de implementar.
Lenguaje de alto
nivel
Un lenguaje de alto nivel permite al programador escribir
las instrucciones de un programautilizando palabras o expresiones sintácticas
muy similares al inglés. Por ejemplo, en C se pueden usar palabras tales como:
case, if, for, while, etc. para construir con ellas instrucciones como:
if( numero > 0 ) printf( "El número es
positivo" )
que traducido al castellano viene a decir que: si numero es
mayor que cero, entonces, escribir por pantalla el mensaje: "El número es
positivo".
Ésta es la razón por la que a estos lenguajes se les
considera de alto nivel, porque se pueden utilizar palabras de muy fácil
comprensión para el programador. En contraposición, los lenguajes de bajo nivel
son aquellos que están más cerca del "entendimiento" de la máquina.
Otros lenguajes de alto nivel son: Ada, BASIC, COBOL, FORTRAN, Pascal, etc.
Otra carácterística importante de los lenguajes de alto
nivel es que, para la mayoría de las instrucciones de estos lenguajes, se
necesitarían varias instrucciones en un lenguaje ensamblador para indicar lo
mismo. De igual forma que, la mayoría de las instrucciones de un lenguaje
ensamblador, también agrupa a varias instrucciones de un lenguaje máquina.
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:
Lenguaje Máquina
- Las invocaciones a memoria, como los procesos aritmético lógicos son
posiciones literales de conmutadores físicos del hardware en su representación
booleana. Estos lenguajes son literales de tareas.
Lenguajes de bajo
nivel - Son instrucciones que ensamblan los grupos de conmutadores
necesarios para expresar una mínima lógica aritmética. Están íntimamente
vinculados al hardware. Por norma general están disponibles a nivel firmware,
cmos o chip set. Estos lenguajes están orientados a procesos. Los procesos se
componen de tareas. Contienen tantas instrucciones como la arquitectura del
hardware así haya sido diseñada.
Por ejemplo: La arquitectura CISC contiene muchas mas
instrucciones a este nivel, que la RISC.
Son denominados como ensambladores de un hardware concreto.
Lenguajes de medio
nivel - Son aquellos que, basándose en los juegos de instrucciones
disponibles (chip set), permiten el uso de funciones a nivel aritmético, pero a
nivel lógico dependen de literales en ensamblador. Estos lenguajes están
orientados a procedimientos. Los procedimientos se componen de procesos.
Ejemplos: C, Basic.
Lenguajes de alto
nivel - Son aquellos que permiten una máxima flexibilidad al programador a
la hora de abstraerse o de ser literal. Permiten un camino bidireccional entre
el lenguaje máquina y una expresión casi oral entre la escritura del programa y
su posterior compilación. Estos lenguajes están orientados a objetos. Los
objetos se componen de propiedades cuya naturaleza emerge de procedimientos.
Ejemplos: C++, Fortran, Cobol, Lisp.
Lenguajes de
aplicaciones - Son aquellos que no permiten una bidireccionalidad
conceptual entre el lenguaje máquina y los lenguajes de alto nivel, ni tampoco
la literalidad a la hora de invocar conceptos lógicos. Se basan en librerías creadas en lenguajes de alto nivel. Pueden
permitir la creación de nuevas librerías, pero son propietarias y dependientes
de las suministradas por la aplicación. Estos lenguajes están orientados a
eventos. Los eventos acontecen cuando las propiedades de un objeto interactúan
con otro.
Ejemplos: Visual Basic para aplicaciones.
Lenguajes de redes -
Son aquellos que se basan en un convenio de instrucciones totalmente
independientes de la máquina, y completamente dependientes de la red a la que
están orientadas. Se dividen en descriptivos (HTML, XML, VML), de
cliente-Servidor (Java, PHP) y de script.
La palabra bajo no implica que el lenguaje sea inferior a un
lenguaje de alto nivel; se refiere a la reducida abstracción entre el lenguaje
y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar
controladores de dispositivos.
Ejemplo de Lenguaje de Alto Nivel
Ejemplo de lenguaje de Medio Nivel
Lenguaje de Alto Nivel
Los lenguajes de programación son tres y se dividen en alto bajo y medio nivel de lenguaje.
ResponderEliminarya tengo blog jajajajajaja
jajaja profe!! es mucha info y yo tengo muucho sueño como para leerlo todo!! pero se que esta interesante jejeje (Y)
ResponderEliminarsi Kevincito como no vas a entender si hicimos esa tarea jajajaja
ResponderEliminarademàs ese ere el subtema!
te pelas prrr
O.o muxa informacion O.o
ResponderEliminarREEE interesante la tarea!!
ResponderEliminarjajaja que interesante TODO... Bueno ya tenemos blog jajajaj =D x_x
ResponderEliminarWauuu!
ResponderEliminarHELLO A TODOS...
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarholaaaaaaaaaaaa :D
ResponderEliminarEsta demasiado interesante la infomracion que nos dio me entretubo bastante lo cual nunk habia echo ate+-ntamente ya tengo Blog d-e+de el año pasado P.S. se podia con Hotmal Jjajajajajaja XD
ResponderEliminardejen sus comentarios chicos... =D
ResponderEliminaray no otra red social mas :s
HOLA!!!!
ResponderEliminaresta bueno el blog
ResponderEliminarLOs lenguajes de programación son tres que se dividen en:
ResponderEliminar*Alto nivel
*Mediano nivel
*Bajo nivel...
me parece muy interesante conocer los lenguajes de programación
que contiene uana computadora y asi entender mejor....
jajajajajaja.
Yoshy valiente***
yoshivaliente@gmail.com
ResponderEliminarel profe esta loco¡¡:D
ResponderEliminarWii nuevo blog...!!!
ResponderEliminarla ultima en comentar haha
ResponderEliminarlos lenguajes de programacion se divide en tres
ResponderEliminaralto nivel
mediano nivel
bajo nivel
escribir en la direccion blogger
despues entrar en la pagina del colegio
y despues comentar
y enviar
y ya