Lenguaje de Programación
Lenguaje de Programación
Ir a la navegación Ir a la búsqueda
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 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.
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 histórica
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:
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.
Elementos
Variables y vectores
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.
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:
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.
Sintaxis
Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes para facilitar
su lectura. Este ejemplo está escrito en Python.
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:
complex *p = NULL;
complex abs_p = sqrt (p->real * p->real + p->im * p->im);
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
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 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.
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.
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.
Implementación
Código fuente de un programa escrito en el lenguaje de programación Java.
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.
Técnica
Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una
serie de detalles.
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.).
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 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?
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.
Fuente: https://concepto.de/lenguaje-de-programacion/#ixzz5xj8cjGpH
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
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)
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.
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
Lenguaje compilado
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.
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 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.
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.
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 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.
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.
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.
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
Compilador
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.
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.
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
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
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.
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.
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.
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.
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.
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.
Cursos de programación
11. Ruby
12. Swift
14. R
15. Go
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.
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.
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.
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
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.
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/