100% encontró este documento útil (1 voto)
355 vistas44 páginas

Lenguaje de Programación

El documento describe la historia y clasificación de los lenguajes de programación. Explica que los primeros lenguajes eran de bajo nivel como el código máquina y ensamblador, mientras que lenguajes posteriores como Fortran, COBOL y BASIC eran de alto nivel. También cubre los diferentes paradigmas de programación y cómo los lenguajes se pueden clasificar según su nivel de abstracción, paradigma, propósito o generación histórica.

Cargado por

EDUARDO LABRADOR
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
355 vistas44 páginas

Lenguaje de Programación

El documento describe la historia y clasificación de los lenguajes de programación. Explica que los primeros lenguajes eran de bajo nivel como el código máquina y ensamblador, mientras que lenguajes posteriores como Fortran, COBOL y BASIC eran de alto nivel. También cubre los diferentes paradigmas de programación y cómo los lenguajes se pueden clasificar según su nivel de abstracción, paradigma, propósito o generación histórica.

Cargado por

EDUARDO LABRADOR
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 44

Lenguaje de programación

Ir a la navegación Ir a la búsqueda

Captura de la microcomputadora Commodore PET-32 mostrando un programa en el


lenguaje de programación de alto nivel BASIC, bajo el emulador VICE, en una distribución
GNU/Linux.

Un ejemplo de código fuente escrito en el lenguaje de programación Java, que imprimirá el


mensaje "Hello World!" a la salida estándar cuando es compilado y ejecutado

Un lenguaje de programación es un lenguaje formal que proporciona una serie de


instrucciones que permiten a un programador escribir secuencias de órdenes y algoritmos a
modo de controlar el comportamiento físico y lógico de una computadora con el objetivo de
que produzca diversas clases de datos. A todo este conjunto de órdenes y datos escritos
mediante un lenguaje de programación se le conoce como programa.

Algunos de estos lenguajes están formados por un conjunto de símbolos (llamado alfabeto),
reglas gramaticales (léxico/morfológicas y sintácticas) y reglas semánticas, que en conjunto
definen las estructuras válidas en el lenguaje y su significado. Al proceso por el cual se
escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente
de un programa informático se le llama programación, que es la que define la creación de
software 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 estructurar el contenido de los documentos).

El lenguaje de programación permite especificar de manera precisa sobre qué datos debe
operar un software específico, cómo deben ser almacenados o transmitidos dichos datos, y
qué acciones debe dicho software 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.

Índice
 1 Historia
 2 Clasificación de los lenguajes de programación
o 2.1 Clasificación histórica o por generaciones
 3 Paradigma de programación
 4 Clasificación por paradigmas
 5 Elementos
o 5.1 Variables y vectores
o 5.2 Condicionales
o 5.3 Bucles
o 5.4 Funciones
o 5.5 Sintaxis
o 5.6 Semántica estática
o 5.7 Sistema de tipos
 5.7.1 Lenguajes tipados versus lenguajes no tipados
 5.7.2 Tipos estáticos versus tipos dinámicos
 5.7.3 Tipos débiles y tipos fuertes
 6 Implementación
 7 Técnica
o 7.1 Paradigmas
 8 Véase también
 9 Referencias
 10 Enlaces externos

Historia
Artículo principal: Historia de los lenguajes de programación
Código Fortran en una tarjeta perforada, mostrando el uso especializado de las columnas 1-
5, 6 y 73-80.

Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico
conocido como código máquina, que la máquina lee fácilmente, pero que es excesivamente
complicado para las personas. De hecho solo consiste en cadenas extensas de números 0 y
1.

Para facilitar el trabajo, los primeros operadores de computadoras decidieron crear un


traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras
provenientes del inglés; este 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 semejante a la de los lenguajes
escritos por los humanos, denominados también lenguajes de alto nivel.

El primer programador de computadora conocido fue una mujer: Ada Lovelace, hija de
Anabella Milbanke Byron y Lord Byron. Anabella inició 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 estas 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.1

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 la actualidad, 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.

Clasificación de los lenguajes de programación


Los lenguajes de programación han sido históricamente clasificados atendiendo a distintos
criterios:

 Clasificación histórica

A medida que surgian nuevos lenguajes que permitían nuevos estilos de


programación más expresiva, se distinguieron dichos estilos en una serie de
generaciones, cada una representando lenguajes de programación surgidos en una
época similar y con características genéricas comunes.

 Lenguajes de alto y de bajo nivel

Los lenguajes de programación se suelen clasificar dentro de dos amplias categorías


que se refieren a su "nivel de abstracción", es decir, en cuanto a lo específico o
general que es respecto a la arquitectura de computación inherente al sistema que se
está utilizando.

 Clasificación por paradigmas

Los paradigmas de programación distinguen distintos modelos de cómputo y de


estilos de estructurar y organizar las tareas que debe realizar un programa. Un
lenguaje de programación puede ofrecer soporte a uno o varios paradigmas de
programación, total o parcialmente.

 Clasificación por propósito

Se distinguen los lenguajes de programación de propósito general de aquellos de


propósito específico.
En algunas ocasiones los lenguajes de programación son también clasificados en familias
que comparten ciertas características comunes como el estilo general de la sintaxis que
emplean. Habitualmente estas características suelen ser heredadas de lenguajes de
programación anteriores que sirvieron de inspiración a los creadores de dicho lenguaje.

Clasificación histórica o por generaciones

Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las
tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy
claras, la cuarta (circuitos integrados a gran escala) es más discutible.

Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se
realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres
primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas
generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de
forma aproximada, y son las siguientes:

 Primera Generación: Los primeros ordenadores se programaban directamente en


código de máquina (basado en sistema binario), que puede representarse mediante
secuencias de 0 y 1. No obstante, cada modelo de ordenador tiene su propia
estructura interna a la hora de programarse. A estos lenguajes se les denominaba
Lenguaje de bajo nivel, porque sus instrucciones ejercen un control directo sobre el
hardware y están condicionados por la estructura física de las computadoras que lo
soportan. Dado que este tipo de lenguaje se acerca mucho más a la lógica de la
máquina que a la humana, es mucho más complicado programar con él. El uso de la
palabra bajo en su denominación no implica que el lenguaje sea menos potente que
un lenguaje de alto nivel, sino 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. Otra limitación de estos lenguajes es que se requiere
de ciertos conocimientos de programación para realizar las secuencias de
instrucciones lógicas.

 Segunda generación: Los lenguajes simbólicos, asimismo propios de la máquina,


simplifican la escritura de las instrucciones y las hacen más legibles. Se refiere al
lenguaje ensamblador ensamblado a través de un macroensamblador. Es el lenguaje
de máquina combinado con una serie de poderosas macros que permiten declarar
estructuras de datos y de control complejas.

 Tercera Generación: Los lenguajes de alto nivel sustituyen las instrucciones


simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano
o al de las Matemáticas. Se crearon para que el usuario común pudiese solucionar
un problema de procesamiento de datos de una manera más fácil y rápida. Son
usados en ámbitos computacionales donde se logra un alto rendimiento con respecto
a lenguajes de generaciones anteriores. Entre ellos se encuentran C, Fortran,
Smalltalk, Ada, C++, C#, Cobol, Delphi, Java y PHP, entre otros. Algunos de estos
lenguajes pueden ser de propósito general, es decir, que el lenguaje no está
enfocado a una única especialidad, sino que puede usarse para crear todo tipo de
programas. Para ciertas tareas más comunes, existen bibliotecas para facilitar la
programación que permiten la reutilización de código.

 Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten


construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que
estas herramientas no son, propiamente hablando, lenguajes. Cabe mencionar que,
algunos proponen reservar el nombre de cuarta generación para la programación
orientada a objetos. Estos últimos tienen una estructura muy parecida al idioma
inglés. Algunas de sus características son: acceso a base de datos, capacidades
gráficas, generación de código automáticamente, así como poder programar
visualmente (como por ejemplo Visual Basic o SQL). Entre sus ventajas se cuenta
una mayor productividad y menor agotamiento del programador, así como menor
concentración por su parte, ya que las herramientas proporcionadas incluyen
secuencias de instrucciones. El nivel de concentración que se requiere es menor, ya
que algunas instrucciones, que le son dadas a las herramientas, a su vez, engloban
secuencias de instrucciones a otro nivel dentro de la herramienta. Cuando hay que
dar mantenimiento a los programas previamente elaborados, es menos complicado
por requerir menor nivel de concentración. Por otro lado, sus desventajas consisten
en que estas herramientas prefabricadas son generalmente menos flexibles que las
instrucciones directas en los lenguajes de bajo nivel. Además, se suelen crear
dependencias con uno o varios proveedores externos, lo que se traduce en pérdida
de autonomía. Asimismo, es frecuente que dichas herramientas prefabricadas
contengan librerías de otros proveedores, que conlleva instalar opciones adicionales
que son consideradas opcionales. A menos que existan acuerdos con otros
proveedores, son programas que se ejecutan únicamente con el lenguaje que lo creó.
Tampoco suelen cumplir con los estándares internacionales ISO y ANSI, lo cual
conlleva un riesgo futuro por desconocerse su tiempo de permanencia en el
mercado. Algunos ejemplos son: NATURAL y PL/SQL.

 Quinta generación: en ocasiones se llama así a los lenguajes de inteligencia


artificial, aunque con el fracaso del proyecto japonés de la quinta generación esta
denominación ha caído en desuso.

Paradigma de programación
Un paradigma de programación consiste en un método para llevar a cabo cómputos y la
forma en la que deben estructurarse y organizarse las tareas que debe realizar un programa.2
Se trata de una propuesta tecnológica adoptada por una comunidad de programadores, y
desarrolladores cuyo núcleo central es incuestionable en cuanto que únicamente trata de
resolver uno o varios problemas claramente delimitados; la resolución de estos problemas
debe suponer consecuentemente un avance significativo en al menos un parámetro que
afecte a la ingeniería de software. Representa un enfoque particular o filosofía para diseñar
soluciones. Los paradigmas difieren unos de otros, en los conceptos y la forma de abstraer
los elementos involucrados en un problema, así como en los pasos que integran su solución
del problema, en otras palabras, el cómputo. Tiene una estrecha relación con la
formalización de determinados lenguajes en su momento de definición. Es un estilo de
programación empleado.

Un paradigma de programación está delimitado en el tiempo en cuanto a aceptación y uso,


porque nuevos paradigmas aportan nuevas o mejores soluciones que lo sustituyen parcial o
totalmente.

El paradigma de programación que actualmente es más utilizado es la "orientación a


objetos" (OO). El núcleo central de este paradigma es la unión de datos y procesamiento en
una entidad llamada "objeto", relacionable a su vez con otras entidades "objeto".

Tradicionalmente, datos y procesamiento se han separado en áreas diferente del diseño y la


implementación de software. Esto provocó que grandes desarrollos tuvieran problemas de
fiabilidad, mantenimiento, adaptación a los cambios y escalabilidad. Con la OO y
características como el encapsulado, polimorfismo o la herencia, se permitió un avance
significativo en el desarrollo de software a cualquier escala de producción. La OO parece
estar ligada en sus orígenes con lenguajes como Lisp y Simula, aunque el primero que
acuñó el título de "programación orientada a objetos" fue Smalltalk.

Clasificación por paradigmas


En general, la mayoría de paradigmas son variantes de los dos tipos principales de
programación, imperativa y declarativa. En la programación imperativa se describe paso a
paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y
hallar la solución, es decir, un algoritmo en el que se describen los pasos necesarios para
solucionar el problema.

En la programación declarativa las sentencias que se utilizan lo que hacen es describir el


problema que se quiere solucionar; se programa diciendo lo que se quiere resolver a nivel
de usuario, pero no las instrucciones necesarias para solucionarlo. Esto último se realizará
mediante mecanismos internos de inferencia de información a partir de la descripción
realizada.

A continuación se describen algunas de las distintas variantes de paradigmas de


programación:

 Programación imperativa o por procedimientos: es el más usado en general, se


basa en dar instrucciones al ordenador de como hacer las cosas en forma de
algoritmos, en lugar de describir el problema o la solución. Las recetas de cocina y
las listas de revisión de procesos, a pesar de no ser programas de computadora, son
también conceptos familiares similares en estilo a la programación imperativa;
donde cada paso es una instrucción. Es la forma de programación más usada y la
más antigua, el ejemplo principal es el lenguaje de máquina. Ejemplos de lenguajes
puros de este paradigma serían el C, BASIC o Pascal.
 Programación orientada a objetos: está basada en el imperativo, pero encapsula
elementos denominados objetos que incluyen tanto variables como funciones. Está
representado por C++, C#, Java o Python entre otros, pero el más representativo
sería el Smalltalk que está completamente orientado a objetos.

 Programación dinámica: está definida como el proceso de romper problemas en


partes pequeñas para analizarlos y resolverlos de forma lo más cercana al óptimo,
busca resolver problemas en O(n) sin usar por tanto métodos recursivos. Este
paradigma está más basado en el modo de realizar los algoritmos, por lo que se
puede usar con cualquier lenguaje imperativo.

 Programación dirigida por eventos: la programación dirigida por eventos es un


paradigma de programación en el que tanto la estructura como la ejecución de los
programas van determinados por los sucesos que ocurran en el sistema, definidos
por el usuario o que ellos mismos provoquen.

 Programación declarativa: está basada en describir el problema declarando


propiedades y reglas que deben cumplirse, en lugar de instrucciones. Hay lenguajes
para la programación funcional, la programación lógica, o la combinación lógico-
funcional. La solución es obtenida mediante mecanismos internos de control, sin
especificar exactamente cómo encontrarla (tan solo se le indica a la computadora
qué es lo que se desea obtener o qué es lo que se está buscando). No existen
asignaciones destructivas, y las variables son utilizadas con transparencia
referencial. Los lenguajes declarativos tienen la ventaja de ser razonados
matemáticamente, lo que permite el uso de mecanismos matemáticos para optimizar
el rendimiento de los programas.3 Unos de los primeros lenguajes funcionales
fueron Lisp y Prolog.

 Programación funcional: basada en la definición los predicados y es de corte más


matemático, está representado por Scheme (una variante de Lisp) o Haskell. Python
también representa este paradigma.4

 Programación lógica: basado en la definición de relaciones lógicas, está


representado por Prolog.

 Programación con restricciones: similar a la lógica usando ecuaciones. Casi todos


los lenguajes son variantes del Prolog.

 Programación multiparadigma: es el uso de dos o más paradigmas dentro de un


programa. El lenguaje Lisp se considera multiparadigma. Al igual que Python, que
es orientado a objetos, reflexivo, imperativo y funcional.4 Según lo describe Bjarne
Stroustrup, esos lenguajes permiten crear programas usando más de un estilo de
programación. El objetivo en el diseño de estos lenguajes es permitir a los
programadores utilizar el mejor paradigma para cada trabajo, admitiendo que
ninguno resuelve todos los problemas de la forma más fácil y eficiente posible. Por
ejemplo, lenguajes de programación como C++, Genie, Delphi, Visual Basic, PHP o
D5 combinan el paradigma imperativo con la orientación a objetos. Incluso existen
lenguajes multiparadigma que permiten la mezcla de forma natural, como en el caso
de Oz, que tiene subconjuntos (particularidad de los lenguajes lógicos), y otras
características propias de lenguajes de programación funcional y de orientación a
objetos. Otro ejemplo son los lenguajes como Scheme de paradigma funcional o
Prolog (paradigma lógico), que cuentan con estructuras repetitivas, propias del
paradigma imperativo.

 Programación reactiva: Este paradigma se basa en la declaración de una serie de


objetos emisores de eventos asíncronos y otra serie de objetos que se "suscriben" a
los primeros (es decir, quedan a la escucha de la emisión de eventos de estos) y
*reaccionan* a los valores que reciben. Es muy común usar la librería Rx de
Microsoft (Acrónimo de Reactive Extensions), disponible para múltiples lenguajes
de programación.

 Lenguaje específico del dominio o DSL: se denomina así a los lenguajes


desarrollados para resolver un problema específico, pudiendo entrar dentro de
cualquier grupo anterior. El más representativo sería SQL para el manejo de las
bases de datos, de tipo declarativo, pero los hay imperativos, como el Logo.

Elementos
Variables y vectores

Artículo principal: Variable (programación)

Imagen tomada de Pauscal, lenguaje de programación en español creado en Argentina.

Las variables son títulos asignados a espacios en memoria para almacenar datos
específicos. Son contenedores de datos y por ello se diferencian según el tipo de dato que
son capaces de almacenar. En la mayoría de lenguajes de programación se requiere
especificar un tipo de variable concreto para guardar un dato específico. Por ejemplo, en
Java, si deseamos guardar una cadena de texto debemos especificar que la variable es del
tipo String. Por otra parte, en lenguajes como PHP o JavaScript este tipo de especificación
de variables no es necesario. Además, existen variables compuestas llamadas vectores. Un
vector no es más que un conjunto de bytes consecutivas en memoria y del mismo tipo
guardadas dentro de una variable contenedor. A continuación, un listado con los tipos de
variables y vectores más comunes:

Tipo de
Breve descripción
dato
Estas variables contienen un único carácter, es decir, una letra, un signo o un
Char
número.
Int Contienen un número entero.
Float Contienen un número decimal.
Contienen cadenas de texto, o lo que es lo mismo, es un vector con varias
String
variables del tipo Char.
Boolean Solo pueden contener un cero o un uno.

En el caso de variables booleanas, el cero es considerado para muchos lenguajes como el


literal falso ("False"), mientras que el uno se considera verdadero ("True").

Condicionales

Las sentencias condicionales son estructuras de código que indican que, para que cierta
parte del programa se ejecute, deben cumplirse ciertas premisas; por ejemplo: que dos
valores sean iguales, que un valor exista, que un valor sea mayor que otro... Estos
condicionantes por lo general solo se ejecutan una vez a lo largo del programa. Los
condicionantes más conocidos y empleados en programación son:

 If: Indica una condición para que se ejecute una parte del programa.
 Else if: Siempre va precedido de un "If" e indica una condición para que se ejecute
una parte del programa siempre que no cumpla la condición del if previo y sí se
cumpla con la que el "else if" especifique.
 Else: Siempre precedido de "If" y en ocasiones de "Else If". Indica que debe
ejecutarse cuando no se cumplan las condiciones previas.

Bucles

Los bucles son parientes cercanos de los condicionantes, pero ejecutan constantemente un
código mientras se cumpla una determinada condición. Los más frecuentes son:

 For: Ejecuta un código mientras una variable se encuentre entre 2 determinados


parámetros.
 While: Ejecuta un código mientras que se cumpla la condición que solicita.

Hay que decir que a pesar de que existan distintos tipos de bucles, todos son capaces de
realizar exactamente las mismas funciones. El empleo de uno u otro depende, por lo
general, del gusto del programador.

Funciones
Las funciones se crearon para evitar tener que repetir constantemente fragmentos de
código. Una función podría considerarse como una variable que encierra código dentro de
si. Por lo tanto cuando accedemos a dicha variable (la función) en realidad lo que estamos
haciendo es ordenar al programa que ejecute un determinado código predefinido
anteriormente.

Todos los lenguajes de programación tienen algunos elementos de formación primitivos


para la descripción de los datos y de los procesos o transformaciones aplicadas a estos datos
(tal como la suma de dos números o la selección de un elemento que forma parte de una
colección). Estos elementos primitivos son definidos por reglas sintácticas y semánticas que
describen su estructura y significado respectivamente.

Sintaxis

Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes para facilitar
su lectura. Este ejemplo está escrito en Python.

A la forma visible de un lenguaje de programación se la conoce como sintaxis. La mayoría


de los lenguajes de programación son puramente textuales, es decir, utilizan secuencias de
texto que incluyen palabras, números y puntuación, de manera similar a los lenguajes
naturales escritos. Por otra parte, hay algunos lenguajes de programación que son más
gráficos en su naturaleza, utilizando relaciones visuales entre símbolos para especificar un
programa.

La sintaxis de un lenguaje de programación describe las combinaciones posibles de los


símbolos que forman un programa sintácticamente correcto. El significado que se le da a
una combinación de símbolos es manejado por su semántica (ya sea formal o como parte
del código duro de la referencia de implementación). Dado que la mayoría de los lenguajes
son textuales, este artículo trata de la sintaxis textual.

La sintaxis de los lenguajes de programación es definida generalmente utilizando una


combinación de expresiones regulares (para la estructura léxica) y la Notación de Backus-
Naur (para la estructura gramática). Este es un ejemplo de una gramática simple, tomada
del lenguaje Lisp:
expresión ::= átomo | lista
átomo ::= número | símbolo
número ::= [+-]? ['0'-'9']+
símbolo ::= ['A'-'Z'] ['a'-'z'].*
lista ::= '(' expresión* ')'

Con esta gramática se especifica lo siguiente:

 una expresión puede ser un átomo o una lista;


 un átomo puede ser un número o un símbolo;
 un número es una secuencia continua de uno o más dígitos decimales, precedido
opcionalmente por un signo más o un signo menos;
 un símbolo es una letra seguida de cero o más caracteres (excluyendo espacios); y
 una lista es un par de paréntesis que abren y cierran, con cero o más expresiones en
medio.

Algunos ejemplos de secuencias bien formadas de acuerdo a esta gramática:

'12345', '()', '(a b c232 (1))'

No todos los programas sintácticamente correctos son semánticamente correctos. Muchos


programas sintácticamente correctos tienen inconsistencias con las reglas del lenguaje; y
pueden (dependiendo de la especificación del lenguaje y la solidez de la implementación)
resultar en un error de traducción o ejecución. En algunos casos, tales programas pueden
exhibir un comportamiento indefinido. Además, incluso cuando un programa está bien
definido dentro de un lenguaje, todavía puede tener un significado que no es el que la
persona que lo escribió estaba tratando de construir.

Usando el lenguaje natural, por ejemplo, puede no ser posible asignarle significado a una
oración gramaticalmente válida o la oración puede ser falsa:

 "Las ideas verdes y descoloridas duermen furiosamente" es una oración bien


formada gramaticalmente pero no tiene significado comúnmente aceptado.
 "Juan es un soltero casado" también está bien formada gramaticalmente pero
expresa un significado que no puede ser verdadero.

El siguiente fragmento en el lenguaje C es sintácticamente correcto, pero ejecuta una


operación que no está definida semánticamente (dado que p es un apuntador nulo, las
operaciones p->real y p->im no tienen ningún significado):

complex *p = NULL;
complex abs_p = sqrt (p->real * p->real + p->im * p->im);

Si la declaración de tipo de la primera línea fuera omitida, el programa dispararía un error


de compilación, pues la variable "p" no estaría definida. Pero el programa sería
sintácticamente correcto todavía, dado que las declaraciones de tipo proveen información
semántica solamente.
La gramática necesaria para especificar un lenguaje de programación puede ser clasificada
por su posición en la Jerarquía de Chomsky. La sintaxis de la mayoría de los lenguajes de
programación puede ser especificada utilizando una gramática Tipo-2, es decir, son
gramáticas libres de contexto. Algunos lenguajes, incluyendo a Perl y a Lisp, contienen
construcciones que permiten la ejecución durante la fase de análisis. Los lenguajes que
permiten construcciones que permiten al programador alterar el comportamiento de un
analizador hacen del análisis de la sintaxis un problema sin decisión única, y generalmente
oscurecen la separación entre análisis y ejecución. En contraste con el sistema de macros de
Lisp y los bloques BEGIN de Perl, que pueden tener cálculos generales, las macros de C
son meros reemplazos de cadenas, y no requieren ejecución de código.

Semántica estática

La semántica estática define las restricciones sobre la estructura de los textos válidos que
resulta imposible o muy difícil expresar mediante formalismos sintácticos estándar. Para los
lenguajes compilados, la semántica estática básicamente incluye las reglas semánticas que
se pueden verificar en el momento de compilar. Por ejemplo el chequeo de que cada
identificador sea declarado antes de ser usado (en lenguajes que requieren tales
declaraciones) o que las etiquetas en cada brazo de una estructura case sean distintas.
Muchas restricciones importantes de este tipo, como la validación de que los
identificadores sean usados en los contextos apropiados (por ejemplo no sumar un entero al
nombre de una función), o que las llamadas a subrutinas tengan el número y tipo de
parámetros adecuado, pueden ser implementadas definiéndolas como reglas en una lógica
conocida como sistema de tipos. Otras formas de análisis estáticos, como los análisis de
flujo de datos, también pueden ser parte de la semántica estática. Otros lenguajes de
programación como Java y C# tienen un análisis definido de asignaciones, una forma de
análisis de flujo de datos, como parte de su semántica estática.

Sistema de tipos

Artículo principal: Sistema de tipos

Un sistema de tipos de datos define la manera en la cual un lenguaje de programación


clasifica los valores y expresiones en tipos, cómo pueden ser manipulados dichos tipos y
cómo interactúan. El objetivo de un sistema de tipos es verificar y normalmente poner en
vigor un cierto nivel de exactitud en programas escritos en el lenguaje en cuestión,
detectando ciertas operaciones inválidas. Cualquier sistema de tipos decidible tiene sus
ventajas y desventajas: mientras por un lado rechaza muchos programas incorrectos,
también prohíbe algunos programas correctos aunque poco comunes. Para poder minimizar
esta desventaja, algunos lenguajes incluyen lagunas de tipos, conversiones explícitas no
verificadas que pueden ser usadas por el programador para permitir explícitamente una
operación normalmente no permitida entre diferentes tipos. En la mayoría de los lenguajes
con tipos, el sistema de tipos es usado solamente para verificar los tipos de los programas,
pero varios lenguajes, generalmente funcionales, llevan a cabo lo que se conoce como
inferencia de tipos, que le quita al programador la tarea de especificar los tipos. Al diseño y
estudio formal de los sistemas de tipos se le conoce como teoría de tipos.
Lenguajes tipados versus lenguajes no tipados

Se dice que un lenguaje es tipado si la especificación de cada operación debe definir los
tipos de datos para los cuales es aplicable, con la implicación de que no es aplicable a otros
tipos. Por ejemplo, "este texto entre comillas" es una cadena de caracteres. En la
mayoría de los lenguajes de programación, dividir un número por una cadena de caracteres
no tiene ningún significado. Por tanto, la mayoría de los lenguajes de programación
modernos rechazarían cualquier intento de ejecutar dicha operación por parte de algún
programa. En algunos lenguajes, estas operaciones sin significado son detectadas cuando el
programa es compilado (validación de tipos "estática") y son rechazadas por el compilador,
mientras en otros son detectadas cuando el programa es ejecutado (validación de tipos
"dinámica") y se genera una excepción en tiempo de ejecución.

Un caso especial de lenguajes de tipo son los lenguajes de tipo sencillo. Estos son con
frecuencia lenguajes de marcado o de scripts, como REXX o SGML, y solamente cuentan
con un tipo de datos; comúnmente cadenas de caracteres que luego son usadas tanto para
datos numéricos como simbólicos.

En contraste, un lenguaje sin tipos, como la mayoría de los lenguajes ensambladores,


permiten que cualquier operación se aplique a cualquier dato, que por lo general se
consideran secuencias de bits de varias longitudes. Lenguajes de alto nivel sin datos
incluyen BCPL y algunas variedades de Forth.

En la práctica, aunque pocos lenguajes son considerados con tipo desde el punto de vista de
la teoría de tipos (es decir, que verifican o rechazan todas las operaciones), la mayoría de
los lenguajes modernos ofrecen algún grado de manejo de tipos. Si bien muchos lenguajes
de producción proveen medios para evitar o rodear el sistema de tipado.

Tipos estáticos versus tipos dinámicos

En lenguajes con tipos estáticos se determina el tipo de todas las expresiones antes de la
ejecución del programa (típicamente al compilar). Por ejemplo, 1 y (2+2) son expresiones
enteras; no pueden ser pasadas a una función que espera una cadena, ni pueden guardarse
en una variable que está definida como fecha.

Los lenguajes con tipos estáticos pueden manejar tipos explícitos o tipos inferidos. En el
primer caso, el programador debe escribir los tipos en determinadas posiciones textuales.
En el segundo caso, el compilador infiere los tipos de las expresiones y las declaraciones de
acuerdo al contexto. La mayoría de los lenguajes populares con tipos estáticos, tales como
C++, C# y Java, manejan tipos explícitos. Inferencia total de los tipos suele asociarse con
lenguajes menos populares, tales como Haskell y ML. Sin embargo, muchos lenguajes de
tipos explícitos permiten inferencias parciales de tipo; tanto Java y C#, por ejemplo,
infieren tipos en un número limitado de casos.

Los lenguajes con tipos dinámicos determinan la validez de los tipos involucrados en las
operaciones durante la ejecución del programa. En otras palabras, los tipos están asociados
con valores en ejecución en lugar de expresiones textuales. Como en el caso de lenguajes
con tipos inferidos, los lenguajes con tipos dinámicos no requieren que el programador
escriba los tipos de las expresiones. Entre otras cosas, esto permite que una misma variable
se pueda asociar con valores de tipos distintos en diferentes momentos de la ejecución de
un programa. Sin embargo, los errores de tipo no pueden ser detectados automáticamente
hasta que se ejecuta el código, dificultando la depuración de los programas, no obstante, en
lenguajes con tipos dinámicos se suele dejar de lado la depuración en favor de técnicas de
desarrollo como por ejemplo BDD y TDD. Ruby, Lisp, JavaScript y Python son lenguajes
con tipos dinámicos.

Tipos débiles y tipos fuertes

Los lenguajes débilmente tipados permiten que un valor de un tipo pueda ser tratado como
de otro tipo, por ejemplo una cadena puede ser operada como un número. Esto puede ser
útil a veces, pero también puede permitir ciertos tipos de fallas que no pueden ser
detectadas durante la compilación o a veces ni siquiera durante la ejecución.

Los lenguajes fuertemente tipados evitan que pase lo anterior. Cualquier intento de llevar a
cabo una operación sobre el tipo equivocado dispara un error. A los lenguajes con tipos
fuertes se les suele llamar de tipos seguros.

Lenguajes con tipos débiles como Perl y JavaScript permiten un gran número de
conversiones de tipo implícitas. Por ejemplo en JavaScript la expresión 2 * x convierte
implícitamente x a un número, y esta conversión es exitosa inclusive cuando x es null,
undefined, un Array o una cadena de letras. Estas conversiones implícitas son útiles con
frecuencia, pero también pueden ocultar errores de programación.

Las características de estáticos y fuertes son ahora generalmente consideradas conceptos


ortogonales, pero su trato en diferentes textos varía. Algunos utilizan el término de tipos
fuertes para referirse a tipos fuertemente estáticos o, para aumentar la confusión,
simplemente como equivalencia de tipos estáticos. De tal manera que C ha sido llamado
tanto lenguaje de tipos fuertes como lenguaje de tipos estáticos débiles.

Implementación
Código fuente de un programa escrito en el lenguaje de programación Java.

La implementación de un lenguaje es la que provee una manera de que se ejecute un


programa para una determinada combinación de software y hardware. Existen básicamente
dos maneras de implementar un lenguaje: compilación e interpretación.

 Compilación: es el proceso que traduce un programa escrito en un lenguaje de


programación a otro lenguaje de programación, generando un programa equivalente
que la máquina será capaz de interpretar. Los programas traductores que pueden
realizar esta operación se llaman compiladores. Estos, como los programas
ensambladores avanzados, pueden generar muchas líneas de código de máquina por
cada proposición del programa fuente.
 Interpretación: es una asignación de significados a las fórmulas bien formadas de un
lenguaje formal. Como los lenguajes formales pueden definirse en términos
puramente sintácticos, sus fórmulas bien formadas pueden no ser más que cadenas
de símbolos sin ningún significado. Una interpretación otorga significado a esas
fórmulas.

Se puede también utilizar una alternativa para traducir lenguajes de alto nivel. En lugar de
traducir el programa fuente y grabar en forma permanente el código objeto que se produce
durante la compilación para utilizarlo en una ejecución futura, el programador solo carga el
programa fuente en la computadora junto con los datos que se van a procesar. A
continuación, un programa intérprete, almacenado en el sistema operativo del disco, o
incluido de manera permanente dentro de la máquina, convierte cada proposición del
programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el
procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a
lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo
o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución
repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución
(porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de
diseño (porque no se tiene que estar compilando a cada momento el código completo). El
intérprete elimina la necesidad de realizar una compilación después de cada modificación
del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un
programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que
uno que se debe interpretar a cada paso durante una ejecución del código.

La mayoría de lenguajes de alto nivel permiten la programación multipropósito, aunque


muchos de ellos fueron diseñados para permitir programación dedicada, como lo fue el
Pascal con las matemáticas en su comienzo. También se han implementado lenguajes
educativos infantiles como Logo mediante una serie de simples instrucciones. En la
actualidad son muy populares algunos lenguajes especialmente indicados para aplicaciones
web, como Perl, PHP, Ruby, Python o JavaScript.

Técnica

Libros sobre diversos lenguajes de programación.

Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una
serie de detalles.

 Corrección. Un programa es correcto si hace lo que debe hacer tal y como se


estableció en las fases previas a su desarrollo. Para determinar si un programa hace
lo que debe, es muy importante especificar claramente qué debe hacer el programa
antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.

 Claridad. Es muy importante que el programa sea lo más claro y legible posible,
para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa
se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo
en la edición; de esta forma se ve facilitado el trabajo del programador, tanto en la
fase de creación como en las fases posteriores de corrección de errores,
ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro
programador, con lo cual la claridad es aún más necesaria para que otros
programadores puedan continuar el trabajo fácilmente. Algunos programadores
llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por
diversión o para impedir un análisis cómodo a otros programadores, recurren al uso
de código ofuscado.

 Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible
los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se
suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido
creado y a la cantidad de memoria que necesita, pero hay otros recursos que
también pueden ser de consideración al obtener la eficiencia de un programa,
dependiendo de su naturaleza (espacio en disco que utiliza, tráfico de red que
genera, etc.).

 Portabilidad. Un programa es portable cuando tiene la capacidad de poder


ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en la
que se elaboró. La portabilidad es una característica muy deseable para un
programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para
sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos
Windows. Esto permite que el programa pueda llegar a más usuarios más
fácilmente.

Paradigmas

Los programas se pueden clasificar por el paradigma del lenguaje que se use para
producirlos. Los principales paradigmas son: imperativos, declarativos y orientación a
objetos.

Los programas que usan un lenguaje imperativo especifican un algoritmo, usan


declaraciones, expresiones y sentencias.6 Una declaración asocia un nombre de variable con
un tipo de dato, por ejemplo: var x: integer;. Una expresión contiene un valor, por
ejemplo: 2 + 2 contiene el valor 4. Finalmente, una sentencia debe asignar una expresión a
una variable o usar el valor de una variable para alterar el flujo de un programa, por
ejemplo: x := 2 + 2; if x == 4 then haz_algo();. Una crítica común en los
lenguajes imperativos es el efecto de las sentencias de asignación sobre una clase de
variables llamadas "no locales".7

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida
debe conocer y no especifican cualquier detalle de implementación. Dos amplias categorías
de lenguajes declarativos son los lenguajes funcionales y los lenguajes lógicos. Los
lenguajes funcionales no permiten asignaciones de variables no locales, así, se hacen más
fácil, por ejemplo, programas como funciones matemáticas.7 El principio detrás de los
lenguajes lógicos es definir el problema que se quiere resolver (el objetivo) y dejar los
detalles de la solución al sistema.8 El objetivo es definido dando una lista de sub-objetivos.
Cada sub-objetivo también se define dando una lista de sus sub-objetivos, etc. Si al tratar de
buscar una solución, una ruta de sub-objetivos falla, entonces tal sub-objetivo se descarta y
sistemáticamente se prueba otra ruta.
La forma en la cual se programa puede ser por medio de texto o de forma visual. En la
programación visual los elementos son manipulados gráficamente en vez de especificarse
por medio de texto.
Concepto de
Lenguaje de Programación
1. ¿Qué es un lenguaje de programación?

En informática, se conoce como lenguaje de programación a un programa destinado a la


construcción de otros programas informáticos. Su nombre se debe a que comprende un
lenguaje formal que está diseñado para organizar algoritmos y procesos lógicos que serán
luego llevados a cabo por un ordenador o sistema informático, permitiendo controlar así su
comportamiento físico, lógico y su comunicación con el usuario humano.

Dicho lenguaje está compuesto por símbolos y reglas sintácticas y semánticas,


expresadas en forma de instrucciones y relaciones lógicas, mediante las cuales se construye
el código fuente de una aplicación o pieza de software determinado. Así, puede llamarse
también lenguaje de programación al resultado final de estos procesos creativos.

La implementación de lenguajes de programación permite el trabajo conjunto y


coordinado, a través de un conjunto afín y finito de instrucciones posibles, de diversos
programadores o arquitectos de software, para lo cual estos lenguajes imitan, al menos
formalmente, la lógica de los lenguajes humanos o naturales.

No deben confundirse, sin embargo, con los distintos tipos de lenguaje informático. Estos
últimos representan una categoría mucho más amplia, en donde están contenidos
los lenguajes de programación y muchos otros protocolos informáticos, como el HTML de
las páginas web.

Ver además: CPU.

2. Tipos de lenguaje de programación


Los lenguajes de bajo nivel están diseñados para un hardware especifico.

Normalmente se distingue entre los siguientes tipos de lenguaje de programación:

 Lenguajes de bajo nivel. Se trata de lenguajes de programación que están


diseñados para un hardware específico y que por lo tanto no pueden migrar o
exportarse a otros computadores. Sacan el mayor provecho posible al sistema para
el que fueron diseñados, pero no aplican para ningún otro.
 Lenguajes de alto nivel. Se trata de lenguajes de programación que aspiran a ser un
lenguaje más universal, por lo que pueden emplearse indistintamente de la
arquitectura del hardware, es decir, en diversos tipos de sistemas. Los hay de
propósito general y de propósito específico.
 Lenguajes de nivel medio. Este término no siempre es aceptado, que propone
lenguajes de programación que se ubican en un punto medio entre los dos
anteriores: pues permite operaciones de alto nivel y a la vez la gestión local de la
arquitectura del sistema.

Otra forma de clasificación a menudo es la siguiente:

 Lenguajes imperativos. Menos flexibles, dada la secuencialidad en que construyen


sus instrucciones, estos lenguajes programan mediante órdenes condicionales y un
bloque de comandos al que retornan una vez llevada a cabo la función.
 Lenguajes funcionales. También llamados procedimentales, estos lenguajes
programan mediante funciones que son invocadas conforme a la entrada recibida,
que a su vez son resultado de otras funciones.
3. Ejemplos de lenguajes de programación

Algunos de los lenguajes de programación más conocidos son:

 BASIC. Su nombre proviene de las siglas de Beginner’s All-


purpose Symbolic Instruction Code (Código simbólico de instrucciones de propósito
general para principiantes), y es una familia de lenguajes imperativos de alto nivel,
aparecidos por primera vez en 1964. Su versión más actual es Visual Basic .NET.
 COBOL. Su nombre es un acrónimo para Common Business-
Oriented Lenguage (Lenguaje común orientado a los negocios) y se trata de un
lenguaje de programación universal creado en 1959, orientado principalmente a la
informática de gestión, es decir, empresarial.
 FORTRAN. Su nombre proviene
de The IBM Mathematical Formula Translating System (El sistema de traducción de
fórmulas matemáticas de IBM), y es un lenguaje de programación de alto nivel,
propósito general y de tipo imperativo, diseñado para aplicaciones científicas y de
ingeniería.
 Java. Un lenguaje de programación de propósito general, orientado a objetos, cuyo
espíritu se resume en las siglas WORA: Written Once, Run Anywhere, es decir:
Escrito una vez, funciona en cualquier parte. La idea era diseñar un lenguaje
universal empleando sintaxis derivada de los lenguajes C y C++, pero empleando
menos utilidades de bajo nivel que cualquiera de ambos.

Fuente: https://concepto.de/lenguaje-de-programacion/#ixzz5xj8cjGpH

Lenguaje de programación En informática, cualquier lenguaje artificial que puede


utilizarse para definir una secuencia de instrucciones para su procesamiento por un
ordenador o computadora. Es complicado definir qué es y qué no es un lenguaje de
programación. Se asume generalmente que la traducción de las instrucciones a un código
que comprende la computadora debe ser completamente sistemática. Normalmente es la
computadora la que realiza la traducción.

Sumario
 1 Lenguaje de Programación
 2 Historia
 3 Implementación
 4 Lenguajes imperativos y funcionales
o 4.1 Lenguaje de programación imperativo
o 4.2 Lenguaje de programación funcional
 5 Interpretación y compilación
o 5.1 Lenguaje interpretado
o 5.2 Lenguaje compilado
o 5.3 Lenguajes intermediarios
 6 Técnica
 7 Paradigmas
 8 Ver Además
 9 Referencias

Lenguaje de Programación

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.

Está formado de 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 el có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 el 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 y el texto 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, tal como sucede con el lenguaje Léxico. 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 del 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
interminables de números 1 y 0. (Binario)

Para facilitar el trabajo, los primeros operadores de computadoras decidieron reemplazar


los 1 y 0 por palabras o 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).
En realidad escribir en lenguaje ensamblador es básicamente igual que hacerlo en 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 W. Backus sometió una propuesta a sus superiores en IBM para
desarrollar una alternativa más práctica al lenguaje ensamblador para programar el
computador 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.

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 aun 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 el 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á con solo una.

Implementación
La implementación de un lenguaje es la que provee una manera de que se ejecute un
programa para una determinada combinación de software y hardware. Existen básicamente
dos maneras de implementar un lenguaje: Compilación e interpretación. Compilación es la
traducción a un código que pueda utilizar la máquina. Los programas traductores que
pueden realizar esta operación se llaman compiladores. Éstos, como los programas
ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada
proposición del programa fuente.

Se puede también utilizar una alternativa para traducir lenguajes de alto nivel. En lugar de
traducir el programa fuente y grabar en forma permanente el código objeto que se produce
durante la compilación para utilizarlo en una ejecución futura, el programador sólo carga el
programa fuente en la computadora junto con los datos que se van a procesar. A
continuación, un programa intérprete, almacenado en el sistema operativo del disco, o
incluido de manera permanente dentro de la máquina, convierte cada proposición del
programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el
procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a
lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo
o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución
repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución
(porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de
diseño (porque no se tiene que estar compilando a cada momento el código completo). El
intérprete elimina la necesidad de realizar una compilación después de cada modificación
del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un
programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que
uno que se debe interpretar a cada paso durante una ejecución del código.

La mayoría de lenguajes de altonivel, permiten la programación multipropósito, sin


embargo, muchos de ellos fueron diseñados para permitir programación dedicada, como lo
fue PASCAL con las matemáticas en su comienzo. También, se han implementado
lenguajes educativos infantiles como LOGO que mediante una serie de simples
instrucciones, permitía mover una tortuga entre otras cosas. En el ámbito de infraestructura
de internet, cabe destacar a Perl con un poderoso sistema de procesamiento de texto y una
enorme colección de módulos.

Lenguajes imperativos y funcionales


Los lenguajes de programación generalmente se dividen en dos grupos principales en base
al procesamiento de sus comandos:
 lenguajes imperativos;
 lenguajes funcionales.

Lenguaje de programación imperativo

Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y


compuestos de órdenes condicionales que permiten al programa retornar a un bloque de
comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación
en uso y aún hoy muchos lenguajes modernos usan este principio.

No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la


secuencialidad de las instrucciones.

Lenguaje de programación funcional

Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un


lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y
recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí
misma, hablamos de recursividad.

Interpretación y compilación
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:

 lenguajes interpretados
 lenguajes compilados

Lenguaje interpretado

Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo


tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en
un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los
comandos de los programas según sea necesario.

Lenguaje compilado

Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo


llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita
ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.

Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un


programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es
necesaria una traducción, la ejecución se vuelve más rápida. Sin embargo, no es tan flexible
como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo
fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de
la compilación del programa para aplicar los cambios.

Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código
fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que
cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese
modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los
derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas
necesitan confidencialidad de código para evitar las copias ilegales (transacciones
bancarias, pagos en línea, comunicaciones seguras...).

Lenguajes intermediarios

Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el
programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación
intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al
archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños
programas que a menudo se cargan en páginas web, son archivos compilados que sólo
pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class).

Técnica
Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una
serie de detalles.

 Corrección. Un programa es correcto si hace lo que debe hacer tal y como se


estableció en las fases previas a su desarrollo. Para determinar si un programa hace
lo que debe, es muy importante especificar claramente qué debe hacer el programa
antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.
 Claridad. Es muy importante que el programa sea lo más claro y legible posible,
para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa
se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo
en la edición; de esta forma se ve facilitado el trabajo del programador, tanto en la
fase de creación como en las fases posteriores de corrección de errores,
ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro
programador, con lo cual la claridad es aún más necesaria para que otros
programadores puedan continuar el trabajo fácilmente. Algunos programadores
llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por
diversión o para impedir un análisis cómodo a otros programadores, recurren al uso
de código ofuscado.
 Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible
los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se
suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido
creado y a la cantidad de memoria que necesita, pero hay otros recursos que
también pueden ser de consideración al obtener la eficiencia de un programa,
dependiendo de su naturaleza (espacio en disco que utiliza, tráfico de red que
genera, etc.).
 Portabilidad. Un programa es portable cuando tiene la capacidad de poder
ejecutarse en una plataforma, ya sea hardware o software, diferente a aquélla en la
que se elaboró. La portabilidad es una característica muy deseable para un
programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para
sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos
Windows. Esto permite que el programa pueda llegar a más usuarios más
fácilmente.

Paradigmas
Los programas se pueden clasificar por el paradigma del lenguaje que se use para
producirlos. Los principales paradigmas son imperativos y declarativos.

Los programas que usan un lenguaje imperativo especifican un algoritmo, usan


declaraciones, expresiones y sentencias.[3] Una declaración asocia un nombre de variable
con un tipo de dato, por ejemplo: var x: integer; . Una expresión contiene un valor, por
ejemplo: 2 + 2 contiene el valor 4. Finalmente, una sentencia debe asignar una expresión a
una variable o usar el valor de una variable para alterar el flujo de un programa. Por
ejemplo: x := 2 + 2; if x == 4 then haz_algo();. Una crítica común en los lenguajes
imperativos es el efecto de las sentencias de asignación sobre una clase de variables
llamadas "no locales".[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida
debe conocer y no especifica cualquier detalle de implementación. Dos amplias categorías
de lenguajes declarativos son los lenguajes funcionales y los lenguajes lógicos. Los
lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales, así,
se hacen más fácil, por ejemplo, programas como funciones matemáticas.[4] El principio
detrás de los lenguajes lógicos (como Prolog) es definir el problema que se quiere resolver
(el objetivo) y dejar los detalles de la solución a el sistema de Prolog.[5] El objetivo es
definido dando una lista de sub-objetivos. Cada sub-objetivo también se define dando una
lista de sus sub-objetivos, etcétera. Si al tratar de buscar una solución, una ruta de sub-
objetivos falla, entonces tal sub-objetivo se descarta y sistemáticamente se prueba otra ruta.

La forma en la cual el programa se crea puede ser por medio de texto o de forma visual. En
un lenguaje de programación visual, los elementos son manipulados gráficamente en vez de
especificarse por medio de texto.
Que es un lenguaje de programación

Contenido [mostrar]

Para la inmensa mayoría de los usuarios, el uso de una computadora es lo más sencillo y
transparente que existe, y no debe preocuparse por aspectos técnicos relacionados con
cómo los programas que utiliza a diario son desarrollados y diseñados. Esto es así
desde hace años, y es totalmente aceptable que sea de esta manera, ya que lo que subyace
debajo de las ventanas y cuadros de diálogo de una aplicación no debe interferir nunca con
la productividad de quien use el software, sino que es responsabilidad de los ingenieros y
desarrolladores.

Sin embargo nunca está demás aprender algo nuevo, ya que de esta manera podremos
entender mejor cómo funciona una computadora y cómo se interrelaciona con nosotros
a través del software, con la consiguiente ganancia en productividad, y por qué no,
conseguir ese algo más que nos diferencie de los demás. Es por ello que en este artículo
encontraremos abundante información acerca de los lenguajes de programación y su
evolución a lo largo de los años.

¿Qué son los lenguajes de programación?


Todo lo que vemos ni bien pulsamos el botón de encendido de nuestra computadora, es
decir el sistema operativo, sus aplicaciones, y las partes más pequeñas que lo conforman
como cuadros de diálogo, menús, ventanas y botones, tienen su nacimiento en los
llamados lenguajes de programación, los cuales son básicamente programas con la
habilidad, mediante una serie de reglas sintácticas y semánticas compuestas por palabras,
números y expresiones matemáticas, de crear el llamado código fuente, el cual una vez
compilado, se convertirá en un programa o software y podrá ser ejecutado en nuestra
computadora sin necesidad de que el usuario lleve a cabo ningún otro paso.

La historia de los lenguajes de programación se remonta hasta 1840, cuando Ada


Lovelace, considerada una pionera en este ámbito, dejara en un reconocido trabajo llamado
“Notas” el puntapié inicial de todo lo que hoy conocemos en materia de lenguajes de
computadoras, y que ha sido muy importante en los orígenes de esta materia. Los años han
pasado, y desde esos primeros esbozos, los lenguajes de programación han avanzado
muchísimo, como así también sus capacidades y el resultado de lo que pueden ofrecer.
Si bien Ada Lovelace fue la primera persona que trabajó en este tipo de investigaciones, los
verdaderos avances se hicieron muchos años después, a partir de la década de
1940, momento en que la computación comenzaba a desarrollarse.

Precisamente en 1946 surgió ENIAC, iniciales de “Electronic Numerical Integrator And


Computer”, que en español significa “Computadora e Integrador Numérico
Electrónico”, y que fuera utilizada por el Laboratorio de Investigación Balística del
Ejército de los Estados Unidos. Obviamente, con estas primeras computadoras surgió la
necesidad de programarlas para que hicieran lo que se les solicitaba.

Lenguaje de máquina
El lenguaje de máquina, también llamado código máquina es un sistema de códigos
diseñado para ser reconocido y ejecutado en forma directa por un circuito
microprogramable, tal como el de un microprocesador de una computadora o de
microcontroladores en máquinas de control numérico, por ejemplo. Básicamente, este
lenguaje de máquina está compuesto por un set de instrucciones que determinan el
comportamiento de una maquinaria o controlador. Un programa en lenguaje máquina
es una cadena de estas instrucciones más los datos sobre los que arrojará los resultados.

Sin embargo, el lenguaje de máquina es expresado completamente en código binario, es


decir 1 y 0, y por lo tanto muy complejo de implementare, y debe ser traducido para que los
humanos puedan interrelacionarse con el mismo. Fue para ello que se desarrolló el
lenguaje ensamblador, que posibilita traducir estas extensas cadenas numéricas en
palabras como “Add”, “Sub”, “Mul” y “Call”, a las que posteriormente se les denominó
“Instrucciones” y que operaban directamente a nivel de hardware.

Lenguaje ensamblador
Assembly Language o Lenguaje Ensamblador por su traducción al castellano, es un
lenguaje de programación para todo tipo de procesadores y controladores, que es
capaz de interpretar y manipular mediante una representación simbólica de los códigos de
máquina binarios y hacerlos de alguna manera “más accesibles” a los programadores.

El lenguaje ensamblador fue utilizado en los albores de las ciencias de la


computación, cuando todavía no habían sido desarrollados lenguajes más potentes y
flexibles. No obstante, todavía es utilizado a nivel académico y cuando es necesario tener
acceso directo al hardware, como en el caso de los sistemas operativos y los controladores
de dispositivos para impresoras, scaners y otros tipos de periféricos. Cabe destacar que el
lenguaje ensamblador es considerado como un lenguaje de bajo nivel.
Lenguajes de Alto y Bajo Nivel
También existe un segundo tipo de lenguaje de programación, o “lenguaje de Alto
Nivel”, que se distingue del primero debido a que tiene la capacidad de poder expresarse
de manera análoga al lenguaje de los humanos, es decir que pueden representar los
algoritmos de una manera adecuada a la capacidad cognitiva de las personas.

El primer lenguaje de programación de Alto Nivel que les permitió a los programadores
una flexibilidad nunca antes vista fue Fortran, creado en el año 1957, precisamente como
una alternativa de lenguaje de alto nivel al lenguaje ensamblador para programar
la mainframe IBM 704, lo que permitiría agilizar los tiempos de programación de dichas
máquinas. Este debe considerase como un verdadero hito en la historia de los lenguajes de
programación, ya que antes de Fortran, los programas sólo se desarrollaban en lenguaje
ensamblador.

Evolución de los lenguajes de programación


A lo largo de los años, y a medida que eran necesarios lenguajes de programación más
potentes y flexibles para llevar a cabo las tareas complejas que las computadoras modernas
podían procesar, al lenguaje ensamblador y a Fortran le siguieron LISP, COBOL,
ALGOL, PASCAL, BASIC, C, dBASE, ADA, JAVA, PHP, C++, DELPHI y otros, que
le abrieron la puerta a la computación tal y como la conocemos ahora.

En la actualidad, existen alrededor de 2000 lenguajes de programación, lo que


demuestra que existe un gran interés en este tipo de herramientas de diseño de software,
tanto de los desarrolladores como de sus clientes, sin embargo la mayoría de ellos son
implementaciones de lenguajes más antiguos.

Más a pesar de este gran abanico de posibilidades, no existe ningún lenguaje de


programación que se destaque por sobre el resto, ya que cada uno de los lenguajes de
programación ofrecen ventajas y desventajas, y será cada desarrollador el que deba
seleccionar el que mejor le sea conveniente para el tipo de desarrollo que llevará a cabo.

Aprender a programar
La programación de aplicaciones es una de las profesiones que más redituables son en
esos días, y por ello no es de extrañar que cada vez más personas inclinen sus preferencias
de estudio para este ámbito. Sin embargo, puede ser una tarea complicada de aprender, ya
que el camino a recorrer es arduo y largo. Programar no es algo que podemos aprender en
unos días o semanas. Aprender a escribir nuestras propias aplicaciones y además
también hacerlo para clientes externos como un profesional nos puede llevar muchos años.

Sin embargo, esto no quiere decir que la programación sea una profesión solo para unos
pocos, ya que con paciencia y dedicación podremos obtener resultado, que nos podrán
poner en el camino correcto.

Pero para que ello funcione, debemos tener en cuenta algunas consideraciones, que tiene
que ver en mayor medida con lo que necesitamos para aprender a programar. En este
sentido, antes de nada debemos tener en claro qué queremos aprender a programar, es decir
si queremos diseñar aplicaciones de gestión, programación web o videojuegos, ya que el
primer paso en la cadena del aprendizaje es sin dudas el tipo de lenguaje de programación
que necesitamos aprender.

Todos sabemos que en el campo de la programación, la oferta de software para crear


aplicaciones es vasta, y sobre todo muy cambiante, debido sobre todo a que dichas
aplicaciones y lenguajes la mayoría de las veces pueden indistintamente utilizarse para
diferentes tipo de aplicaciones, y no hay nada peor para la persona que quiere programar es
la proliferación de ofertas que lo conducen a un callejón sin salida a la hora de sentarse a
aprender. Esto significa que el usuario que recién comienza a programar necesita
centrarse en un solo aspecto, y evitar dispersarse en otros lenguajes y formas.

Como hemos notado, aprender a programar ya desde el principio es una tarea


complicada, pero no imposible, y para ser de ayuda en este aspecto, a partir de este punto
vamos a conocer algunas de las formas más interesantes para aprender a programar.

La primera opción que tenemos disponible para aprender es la autodidacta, es decir


aprender a programar por nuestros propios medios. Esto es posible siempre que se
cuente con una base sólida en matemáticas, determinación y una buena biblioteca o base de
consulta.

Afortunadamente, en Internet podemos encontrar material para aprender a programar


totalmente gratis, incluyendo cursos, tutoriales y libros en formato PDF, lo que nos será
de mucha ayuda, sobre todo si no contamos con el presupuesto suficiente para comprar los
libros necesarios. En este sentido, la literatura técnica que necesitamos conseguir debe
abarcar desde los fundamentos del lenguaje. Para ello, la mejor forma de encontrar todos
estos materiales son los foros o sitios webs dedicados a los lenguajes de programación.
También podemos recurrir a la sabiduría de amigos, familiares y conocidos, ya que nunca
debemos descartar un buen consejo.
El método autodidacta puede incluir entre otras herramientas de estudio la posibilidad de
practicar sobre los lenguajes de programación, es decir comenzar a programar de la
mano de los materiales de consulta directamente sobre el lenguaje de programación que
queremos aprender.

Otra de las formas de aprender programación es inscribirnos en algún curso introductorio


de forma presencial en la materia, y a partir de allí combinar los conocimientos adquiridos
en dicho curso con estudios autodidactas. Esto no permitirá aprender a programar a
nuestro propio ritmo y necesidades partiendo de una base sólida. La única condición
para que esto funcione es que el curso que tomemos garantice buenos contenidos y que esté
actualizado, en el caso contrario sólo estaremos perdiendo el tiempo.

Por último, no debemos descartar la posibilidad de obtener estudios formales en


programación ya que esta es la opción que además de brindarnos más beneficios, es la que
más puertas nos abrirá en un futuro. Claro que el camino es más tortuoso, pero los
beneficios a la larga son mejores.

Si estás interesado en aprender a programar, debajo de estas líneas encontraremos


información acerca de los diferentes tipos de lenguajes de programación que existen, como
primer paso para emprender el camino hacia un buen aprendizaje.

Tipos de lenguajes de programación


Los lenguajes de programación son la base con la que se construyen todas las aplicaciones
que utilizamos para nuestras tareas diarias, desde el sistema operativo de nuestra
computadora hasta nuestro editor de texto favorito, pasando por las páginas web que
visitamos todos los días.

Básicamente, los lenguajes de programación se dividen en dos tipos:

Lenguajes de Bajo Nivel

Son lenguajes totalmente orientados para la máquina, o sea son los que más se aproximan al
“Código de Máquina”, o sea, a los 0 y 1, y es necesario conocerse sólidamente el
hardware. Los programas resultantes de estos lenguajes son de muy pequeño tamaño y de
extrema rapidez. Ejemplos de estos lenguajes de bajo nivel son Assembler y Lenguaje C.

Lenguajes de Alto Nivel


Son lenguajes más orientados para el problema que se desee resolver, de modo que el
programador debe prestar poca o ninguna atención a las características de la
computadora en las que se irá a ejecutar el programa. Los programas resultantes de estos
lenguajes no son tan rápidos. Ejemplos de lenguajes de alto nivel son Delphi, Visual Basic,
Pascal, el antiguo Clipper y Foxpro, entre otros.

Para que los programas funcionen, necesitan ser traducidos para el código de máquina,
es decir que el código fuente del programa debe ser transformado a código objeto) y para
eso necesita de un traductor o compilador.

Traductor

Debe estar en la memoria mientras se ejecuta el programa, el programa necesita ser


traducido cada vez que es ejecutado. Cada instrucción va siendo traducida a medida que
va siendo ejecutada, con eso el programa termina por ser más lento. Ejemplo de ello son
Access, DBase y demás aplicaciones de este tipo.

Compilador

No necesita estar en la memoria mientras se ejecuta el programa, pues este es traducido


enteramente una vez sólo, haciendo su ejecución muy rápida. Ejemplo de este tipo de apps
son Delphi, Clipper, Pascal y C, entre otros.

¿Cuál es el lenguaje ideal para aprender a programar?


Hace algunos años, las personas que querían comenzar a aprender algún lenguaje de
programación se veían limitadas por las pocas alternativas disponibles, además, la falta de
literatura relacionada con el tema era complicada de encontrar y muy cara, y no siempre
estaba actualizada.

Y si bien existían carreras de nivel universitario con esta temática, lo cierto es que no todos
podían acceder a una educación de nivel superior debido a otros factores externos, que
la mayoría de las veces nada tiene que ver con el intelecto.

Otra problemática que tenía que afrontar aquella persona que quería asomarse al mundo de
la programación de software era el lenguaje, es decir que además de preocuparse por
conseguir material con el cual aprender, debía a su vez aprender inglés para poder
entenderlo.
Afortunadamente, este escenario ha cambiado, y hasta es posible aprender a programar
de forma completamente autodidacta, con decenas de lenguajes de programación de los
cuales escoger disponibles para comenzar a bucear en ellos.

Esto es fundamentalmente gracias a Internet, que nos provee de todas las herramientas
necesarias para aprender a programar: libros, manuales, tutoriales, software y todo lo
necesario para que aprendamos a utilizar un lenguaje de programación sin prácticamente
movernos de casa.

Sin embargo, esta cantidad de lenguajes listos para que los aprendamos también puede
llegar a confundirnos, y ponernos en la duda acerca de cuál de ellos es el más adecuado
para nosotros y nuestros requerimientos.

Para aquellos que recién comienzan, la elección del lenguaje de programación adecuado
es una cuestión que no es muy sencilla de resolver. Sin embargo, en este punto existen
tres factores básicos que nos pueden ayudar en esta decisión: La facilidad de uso y
aprendizaje, la utilidad del mismo, es decir en que plataformas y escenarios nos puede
servir el lenguaje que vamos a aprender y finalmente, quizás el más importante de los
factores de decisión, el mercado laboral en el cual nos va a permitir movernos el
lenguaje aprendido.

Si deseas resolver esta cuestión lo más limpiamente posible, te invitamos a seguir leyendo
este artículo, en donde encontraremos suficiente información como para tomar una decisión
basada en estos tres elementos.

Cómo decidir qué lenguaje de programación aprender


Facilidad de uso y aprendizaje

No cabe ninguna duda de que uno de los lenguajes de programación más fáciles de
aprender y utilizar es PHP, convirtiéndose en el lenguaje perfecto para todos aquellos que
quieren comenzar a programar.

Esto es debido fundamentalmente a diversos factores técnicos como su característica


de “No tipado”, lo que significa que no controla el tipo de variable que declara, de esta
manera es posible utilizar variables de cualquier tipo en un mismo escenario, algo que
beneficia directamente al usuario principiante.

Utilidad
En el caso de que deseemos aprender un lenguaje de programación que pueda usarse en
muchos tipos de escenarios o proyectos diferentes, no cabe duda de que el lenguaje que
debemos escoger es C/C++, el cual se utiliza para programar juegos, aplicaciones y hasta
incluso sistemas operativos.

Sin embargo, C/C++ es mucho más complejo de aprender que PHP, pero el mercado
laboral al que podemos acceder mediante este lenguaje es mucho mayor, y por lo tanto más
redituable para nosotros.

Otro lenguaje que puede sernos útil para una inserción rápida en el mercado laboral es
Java. Esto es debido a que es un lenguaje que puede ser utilizado para escribir software
para un grupo muy amplio de aplicaciones, incluyendo smartphones, electrodomésticos
y otros usos.

Mercado laboral

Si realmente queremos instalarnos en el mercado laboral actual, es sumamente importante


tener en consideración aprender más de un lenguaje de programación, ya que esto nos
abrirá la puerta a muchas oportunidades laborales.

Es por ello que lo mejor es entrar de lleno y convertirnos en expertos en el lenguaje de


programación que mejor se adapte a nuestras necesidades y requerimientos, pero sin
olvidarnos de obtener la mayor cantidad de conocimientos posibles en otras plataformas y
estar al tanto de toda nueva tecnología y nuevo lenguaje de programación que aparezca.

Los 10 lenguajes de programación


más populares en la actualidad
14 de enero de 2019

Java continúa siendo el lenguaje de programación más popular en el mundo, seguido por C
y C++. Conocé la lista completa a continuación

La programación representa una de las profesiones del futuro gracias a la transformación


digital | Fuente: Shutterstock
 La programación es una de las profesiones con más salidas en la actualidad.
 Los estudiantes de informática y programación tienen el futuro profesional
asegurado gracias a la revolución tecnológica.
 Te damos todos los detalles sobre los lenguajes de programación más utilizados.

Los 5 lenguajes de programación más populares de la actualidad son: Java, C, C++,


Pyhton y C#. Así lo asegura el Índice TIOBE en su última actualización de junio 2017. La
novedad es que el lenguaje de programación Kotlin salta a los 50 más populares.
Probablemente te preguntes qué se supone que debas interpretar por lenguaje de
programación "más popular". A continuación, te explicamos.

El Índice TIOBE es un índice elaborado por una empresa de software holandesa que se
especializa en la evaluación y seguimiento de la calidad de los programas informáticos.
Actualmente, la empresa revisa en tiempo real más de 300 millones de códigos de diversos
programas informáticos por día actualizando mes a mes su índice.

El Índice TIOBE se elabora a partir de diversas variables, como por ejemplo, el número
de ingenieros cualificados en determinado lenguaje, las búsquedas que hacen los usuarios a
través de los buscadores solicitando información de los distintos lenguajes de
programación, la demanda de cursos o los lenguajes que están siendo más utilizados.

El índice no dice cuál es el mejor o en qué lenguaje de programación se escribió la mayor


cantidad de líneas de código. Más bien sirve para que un programador pueda determinar
si sus conocimientos en un determinado lenguaje han quedado obsoletos, o si por el
contrario sus conocimientos están vigentes.

También puede ser de utilidad si tienes que tomar una decisión estratégica respecto a qué
lenguaje debes utilizar para la construcción de determinado software. Los datos que
veremos a continuación corresponden al mes de junio de 2017.

1) Java
Reconocido por su legibilidad y simplicidad, Java es uno de los lenguajes de programación
más adoptados: más 9 millones de desarrolladores lo usan y está presente en 7 mil millones
de dispositivos en todo el mundo. Desde 2001 se mantiene en las primeras posiciones,
llegando al número puesto número 2 como la más baja de todas en marzo de 2015.

Su enorme popularidad se debe a su poder de permanencia, cuestión que asegura el


funcionamiento a largo plazo de las aplicaciones que lo utilizan.

Asimismo, cabe destacar que el manejo de Java está incluido dentro de las 20 habilidades
más valoradas por los empleadores en 2016, según un estudio elaborado por LinkedIn.

¿Te gustaría saber más? Conocé 4 cursos online gratuitos para que aprendas a programar en
Java y comenzá a estudiar hoy mismo. Si sos de Córdoba, informate sobre la Carrera de
Web Developer que ofrece el Instituto Superior Santo Domingo.
2) C
Creado entre 1969 y 1972 en los Laboratorios Bell, es uno de los más utilizados en el
mundo. Si bien es ejecutado en la mayoría de los sistemas operativos, es de propósito
general, con lo cual es muy flexible.

Es muy popular para el desarrollo de aplicaciones de escritorio, como el conocido editor


gráfico GIMP.

Conocé el Curso de Diseño de Sitios Web y Maquetación HTML de la Nueva Escuela de


Diseño y Comunicación en Balvanera.

3) C++
Conocido por el nombre “C Plus Plus”, este lenguaje de programación orientado a objetos
surge como una continuación y ampliación del C. Hay una gran cantidad de programas
escritos en C++, como por ejemplo los paquetes de Adobe.

4) Python
Un lenguaje de programación multiplataforma y multiparadigma, que también es de
propósito general. Esto significa que soporta la orientación a objetos, la programación
imperativa y funcional. Su simpleza, legibilidad y similitud con el idioma inglés lo
convierten en un gran lenguaje ideal para principiantes.

5) C#
También llamado “C Sharp”, este lenguaje de programación orientado a objetos fue
desarrollado en el año 2000 por Microsoft para ser empleado en una amplia gama de
aplicaciones empresariales ejecutadas en el framework .NET. C Sharp es una evolución del
C y C++ que se destaca por su sencillez y modernidad.

Tal vez te pueda interesar la Certificación Oracle de Java (OCJP Oracle Certified Java
Programmer) que brinda la UTN de forma online.

6) Visual Basic. NET


Pasó del número 9 en junio de 2016 al sexto lugar en 2017. Es utilizado por una gran
cantidad de personas a lo largo del mundo que no cuentan con conocimientos profundos
como desarrolladores, quienes encuentran en visual basic, además de una sintaxis sencilla,
la posibilidad de automatizar sus propios procesos y crear sus propias aplicaciones web.

Es visto como uno de los lenguajes más amigables para los que recién comienzan, sobre
todo a comparación de C#.
7) JavaScript
Antes que nada, no confundir con Java. Son lenguajes distintos. Javascript es un lenguaje
de programación que puede ser utilizado para crear programas que luego son acoplados a
una página web o dentro de programas más grandes. Sirve para crear efectos y realizar
acciones interactivas.

Podemos ver funcionando este lenguaje en servicios como el chat, calculadoras, buscadores
de información y un sin fin de utilidades más.

Conocé la Certificación MCSD 70-480 Programming in HTML with Javascript and


CSS3 que ofrece la UTN de forma online.

8) PHP
Creado en 1994 por el programador canadiende Rasmus Lerdorf, nunca pretendió ser un
lenguaje de programación, sino que fue creado con la intención de contar con un conjunto
de herramientas para el mantenimiento de las páginas web.

Es de fácil acceso para nuevos programadores y a su vez ofrece a los más experientes
muchas posibilidades.

Conocé el Curso Online sobre Diseño de Páginas Web que dicta la Nueva Escuela de
Comunicación.

9) Perl
Creado Larry Wall, Pearl es una sigla que significa Practical Extraction and Report
Language. Es un lenguaje de propósito general que sirve practicamente para todo, como
puede ser la generación y tratamiento de ficheros, para analizar datos y textos, y muchas
otras cosas más. Si bien hay proyectos complejos y completos escritos en Pearl, son los
menos.

¿Querés aprender más sobre estos lenguajes?

Cursos de programación

10) Assembly language (ASL)


Assembly language (lenguaje ensamblador) saltó de la posición número 12 en 2016 al
número 10 en 2017. Se trata de un lenguaje de programación de bajo nivel utilizado para
interactuar con hardware informático.
Utiliza comandos estructurados, en sustitución de los números, permitiendo a las personas
tener una mayor legibilidad de los códigos. Si bien es más sencillo de leer que el código
binario se trata de un lenguaje difícil que muchas veces es sustituido por uno superior,
como por ejemplo C.

Si querés conocer como sigue la lista de lenguajes de programación más populares, te


invitamos a conocer el resto del ranking:

11. Ruby

12. Swift

13. Delphi/Object Pascal

14. R

15. Go

16. Visual Basic

17. MATLAB

18. Objective-C

19. Scratch

20. PL/SQL

Acerca de Kotlin
Según publica la página oficial de Tiobe, este mismo año el equipo de Google Android
anunció que Kotlin es el tercer lenguaje de programación oficial para Android además
de Java y C++. Este lenguaje de tipadoestático, desarrollado por la compañía JetBrains,
compila a código Java Virtual Machine (JVM), manteniendo su compatibilidad con
programas Java.

Qué lenguajes de programación debería aprender

La Programación se posiciona como una de las habilidades más importantes de la era


actual, pero permite tantas posibilidades que definir el enfoque a estudiar no siempre es
sencillo
Lenguaje de programación.

Según la definición teórica, como lenguaje se entiende a un sistema de comunicación que


posee una determinada estructura, contenido y uso. La programación es, en el vocabulario
propio de la informática, el procedimiento de escritura del código fuente de un software.
De esta manera, puede decirse que la programación le indica al programa informático qué
acción tiene que llevar a cabo y cuál es el modo de concretarla.

Con estas nociones en claro, podemos afirmar que un lenguaje de programación es


aquella estructura que, con una cierta base sintáctica y semántica, imparte distintas
instrucciones a un programa de computadora.

A la hora de establecer el origen del lenguaje de programación tenemos que hacer


referencia, sin lugar a dudas, a Ada Lovelace que está considerada como la primera
programadora de computadoras conocida en todo el mundo. De ahí, curiosamente que se
hablara en su honor del lenguaje de programación Ada. Y es que dicha figura llevó a cabo
no sólo la manipulación de una serie de símbolos para una máquina del científico británico
Charles Babbage sino también la consecución del establecimiento de las instrucciones
necesarias para que un computador pudiera realizar una serie de cálculos iniciales.

Dentro de lo que es el lenguaje de programación es muy importante subrayar que los


profesionales que se dedican a desarrollar este trabajan con un conjunto de elementos que
son los que dan forma y sentido al mismo, los que permiten que aquellos funcionen y
logren sus objetivos. Entre los mismos se encontrarían, por ejemplo, las variables, los
vectores, los bucles, los condicionantes, la sintaxis o la semántica estática.

Las secuencias de programación para las acciones más usuales fueron asociadas para ser
denominadas con nombres fáciles de memorizar (como ADD o MUL). Al conjunto de
instrucciones se lo denomina lenguaje ensamblador.

Cabe diferenciar entre el lenguaje de programación y el lenguaje informático. Existen


lenguajes informáticos que no son, en realidad, lenguajes de programación, como es el caso
del HTML (un lenguaje de marcas).

El lenguaje de programación tiene la capacidad de especificar, de forma precisa, cuáles son


los datos que debe trabajar un equipo informático, de qué modo deben ser conservados o
transferidos dichos datos y qué instrucciones debe poner en marcha la computadora ante
ciertas circunstancias.
Existen diversos lenguajes de programación, lo que ha llevado al desarrollo de intérpretes
(programas que adaptan las instrucciones encontradas en otro lenguaje) y compiladores
(aquellos programas que traducen de un lenguaje a otro).

De acuerdo a su nivel de abstracción, se habla de lenguaje de máquina (son las cadenas


binarias que pueden ser legibles de manera directa por la computadora), lenguaje de bajo
nivel (el lenguaje de programación que se acerca al funcionamiento de una computadora),
lenguaje de medio nivel (comparte características con los lenguajes de bajo nivel pero
también con los más avanzados) o lenguaje de alto nivel (formado por elementos del
lenguaje humano).

Muchos son los lenguajes que existen actualmente en el mercado de la tecnología y la


informática. No obstante, entre los más importantes podemos citar a Pascal, Visual Basic,
SQL, Delphi, Lingo, Cobol, HTML o Java. Este último, por ejemplo, se caracteriza porque
fue desarrollado en el año 1995 por el científico de la computación James Gosling y porque
está orientado a objetos.

Mientras, el citado lenguaje HTML podemos establecer que es uno de los más importantes
de la actualidad ya que es el que se utiliza para elaborar páginas web.

Concepto de Lenguaje de programación


¿Qué es un Lenguaje de programación y qué significa?

Un Lenguaje de programación es un conjunto de instrucciones y términos, un


lenguaje formal, que se construye y se emplea para que un ordenador o un dispositivo
pueda crear diferentes tipos de datos. Por lo general, hablamos de él como el idioma que
el programador habla con la máquina para crear un programa de cualquier tipo.

Existen diferentes clases de lenguajes, en función del software que se quiera crear o de las
instrucciones a emplear. A pesar de las posibles diferencias que estos puedan tener, todos
tienen en común el estar construidos por una serie de reglas tanto semánticas como
sintácticas que establecen cómo se ha de “hablar”, definiendo tanto las expresiones como la
estructura y el significado de todos los elementos que los componen.

Con este tipo de lenguaje es con el que se elabora el código, se depura o se mejora
cuando se está programando. Entender cada uno es algo que requiere de una profunda
preparación y formación, ya que cada uno está sujeto a reglas que, por lo general, son
distintas. No obstante, todos comparten una esencia que ayuda a entenderlos ligeramente a
pesar de no tener grandes nociones sobre ellos.

Sin el lenguaje de programación, el acto de programar sería imposible, dado que no estarían
establecidas ni las reglas ni los elementos para poder hacerlo. Es algo sumamente
importante en los tiempos que corren, en los que lo digital y la informática se han vuelto las
principales armas de cualquier empresa.
Para qué sirve un Lenguaje de programación

Un Lenguaje de programación sirve, en primer lugar, para poder programar. Dado


que existen muchos lenguajes de programación distintos, podríamos sacar en conclusión
que cada uno sirve para algo diferente, y es más o menos así. Por ejemplo, HTML y
JavaScript son lenguajes que se usan en el campo del desarrollo y diseño web, junto con
CSS. Sin embargo, C y C++ son algo enfocado completamente al desarrollo de software.

Hay más casos, pero todos tienen el mismo objetivo. Así, desde una perspectiva
empresarial, el lenguaje es lo que hace que el programador pueda hacer funcionar una web
y construirla desde cero, o desarrollar una app para iOS y Android.

Ejemplos de Lenguaje de programación

Podemos encontrar numerosos Ejemplos de Lenguaje de programación porque, como ya


hemos repetido más de una vez, existen muchos distintos en función de sus reglas y del tipo
de software a desarrollar con ellos. Por esa razón, te dejamos a continuación un buen
recopilatorio para conocer los más importantes: 20 ejemplos de lenguajes de programación.

Más información del Lenguaje de programación

Para obtener más información del Lenguaje de programación, sigue leyendo las
publicaciones que vamos a enlazar. Ahí vas a encontrar más detalles adicionales, aspectos
interesantes e incluso recursos para familiarizarte con alguno de estos lenguajes o comenzar
a sacarles partido. Esperamos que te resulten de utilidad.

https://neoattack.com/neowiki/lenguaje-de-programacion/

Lenguaje de Programación 19088total de vistas A A Luis Olarte Gervacio Ingeniería y


tecnología > Ciencias computacionales y de la información > Lenguajes de programación
23 abril, 2018 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. 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.
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 (de ser necesario) y se mantiene el código fuente
de un programa informático se le llama programación. Un lenguaje de programación
proporciona los elementos de lenguaje necesarios que son necesarios para traducir los pasos
de un pseudocódigo en formato comprensible de la máquina. En otras palabras, el lenguaje
de programación proporciona el puente para hacer la transición de pseudocódigo legible por
humano instrucciones legible por máquina. Las dos clasificaciones principales de lenguajes
de programación son: bajo nivel de lenguaje de programación y lenguaje de programación
de alto nivel. Generaciones de lenguaje de programación Los lenguajes de primera
generación, o 1GL, lenguajes de bajo nivel que son lenguaje de máquina. Los lenguajes de
segunda generación, o 2GL, lenguajes de bajo nivel que generalmente consisten en
lenguajes ensamblados. Los lenguajes de tercera generación, o 3GL, lenguajes de alto nivel
como C. Los lenguajes de cuarta generación, o 4GL, son idiomas que consisten en
declaraciones similares a las declaraciones en un lenguaje humano. Los lenguajes de cuarta
generación se usan comúnmente en la programación de bases de datos y scripts. Los
idiomas de quinta generación, o 5GL, son lenguajes de programación que contienen
herramientas visuales para ayudar a desarrollar un programa. Un buen ejemplo de un
lenguaje de quinta generación es Visual Basic. Tipos de lenguaje de programación Hay tres
tipos de lenguaje de programación: Lenguaje de máquina (lenguaje de bajo nivel).
Lenguaje ensamblador (lenguaje de bajo nivel). Lenguaje de alto nivel. Lenguaje de
máquina El lenguaje de la máquina es una colección de dígitos binarios o bits que la
computadora lee e interpreta. Los lenguajes de máquina son los únicos idiomas que las
computadoras entienden. Aunque las computadoras las entienden fácilmente, los lenguajes
de máquina son casi imposibles de usar por los humanos, ya que consisten completamente
de números. Los idiomas de bajo nivel están más cerca del idioma utilizado por una
computadora, mientras que los idiomas de alto nivel están más cerca de los idiomas
humanos. Ejemplo: Digamos que un motor tiene un procesador y memoria principal. El
motor puede rotar a la izquierda y a la derecha, y puede verificar el interruptor de
encendido / apagado. Las instrucciones de la máquina son de un byte de largo y
corresponden a las siguientes operaciones de la máquina. Instrucción Operación 0000 0000
Detener 0000 0001 Rotar a la derecha 0000 0010 Rotar a la izquierda 0000 0100 Regrese al
inicio del programa 0000 1000 Omita las siguientes instrucciones si el interruptor está
apagado Lenguaje ensamblador El problema es que la computadora no comprende el
código ensamblador, por lo que necesitamos una forma de convertirlo a código de máquina,
que la computadora sí entiende. Los programas de lenguaje ensamblador se traducen al
lenguaje de máquina mediante un programa llamado ensamblador. Ejemplo: - Lenguaje de
máquina: 10110000 01100001 - Lenguaje ensamblador: mov A1, # 061h - Sentido: Mueva
el valor hexadecimal 61 (97 decimal) en el registro del procesador llamado "A1". Lenguaje
de alto nivel Los idiomas de alto nivel nos permiten escribir códigos de computadora
usando instrucciones que se asemejan al lenguaje hablado cotidiano (por ejemplo: imprimir,
si, mientras) que luego se traducen al lenguaje de máquina para ser ejecutados. Los
programas escritos en un lenguaje de alto nivel deben ser traducidos al lenguaje de máquina
antes de que puedan ser ejecutados. Algunos lenguajes de programación usan un
compilador para realizar esta traducción y otros usan un intérprete. El compilador se
encarga de traducir el lenguaje de alto nivel a bajo nivel alto nivel - bajo nivel
programación -código maquina alto nivel – bajo nivel programación -código maquina
Luis Olarte Gervacio. (2018). Lenguaje de Programación. 2019, Agosto 26, Conogasi.org
Sitio web: http://conogasi.org/articulos/lenguaje-de-programacion/

También podría gustarte