# data[].attributes.body
Un lenguaje de programación puede definirse como una notación para escribir instrucciones u

órdenes útiles para el ordenador y necesarias para la realización de un determinado proceso. Se

denomina "lenguaje fuente" a las órdenes que escribe el programador, las cuales son traducidas

al lenguaje máquina de la computadora. Cada lenguaje de programación tiene su propia

gramática o "lenguaje".

# data[].attributes.headline
EVOLUCION DE LOS LENGAUJES DE PROGRAMACION

# data[].attributes.subject
EVOLUCION DE LOS LENGAUJES DE PROGRAMACION

# data[].attributes.body
EVULUCION DE LOS LENGUAJES DE PROGRAMACION

INICIO

En el comienzo de la programación únicamente existía un lenguaje de programación, que era el propio código binario, que como también se denominaba código o lenguaje máquina. Este tipo de programación resultaba muy costosa y lenta, debido a que todas y cada una de las instrucciones que se querían escribir tenían que estaren código binario, con lo que el desarrollador se veía obligado a tener que conocer dónde se almacenaban los datos que se iban a utilizar en la memoria. Por todo esto, a mediados de los 50se comenzó a crear una escritura más simbólica, que recibió el nombre de código ensamblador(Assembly). Esta simplificación hacía uso de abreviaturas mnemotécnicas para poder facilitaroperaciones entre las cuales estaban la suma (ADD) y el copiado (STORE). Aun existiendo este código, la traducción al lenguaje máquina seguía teniendo que hacerse de manera manual, pero no se tardó mucho en crear un programa que se encargará de esta traducción, al que llamaron ensamblador (Assembler) (Trigo Aranda, 2004).

# data[].attributes.body
FORTRAN

A principios de los años 50, John Backus, que trabajaba con uno de los primeros ordenadores que sacó IBM al mercado, desarrolló el programa SPEEDCODING, y tomando este programa como base empezó con la creación de un nuevo lenguaje para poder añadir al modelo de ordenador IBM 704 que iba a salir pronto al mercado. De esta forma, en 1956 se desarrolló FORTRAN. Este lenguaje estaba pensado para poder resolver problemas técnicos y científicos, y quienes estaban familiarizados con la notación científica afirmaban que era bastante sencillo de aprender (Trigo Aranda, 2004).

A finales de los años 50, aparece una preocupación por la poca facilidad de portar un programa de un ordenador a otro, y también por la dificultad que había de leer códigos y modificarlos en caso de nuevas condiciones. Desde el Departamento de Defensa de los Estados Unidos, se organizó una conferencia sobre los lenguajes (Conference on Data Systems Languages).. De esa conferencia salieron las especificaciones de desarrollo del nuevo lenguaje COBOL. A diferencia de FORTRAN, este lenguaje se orientó más para tareas administrativas, aumentar la portabilidad de los programas y la legibilidad de los mismos, es decir, solventar las mayores preocupaciones que surgieron en ese entonces (Trigo Aranda, 2004).

# data[].attributes.body
COBOL

Fruto de aquella conferencia fueron las especificaciones para desarrollar COBOL (COmmon Business Oriented Language), un lenguaje orientado hacia funciones administrativas, con gran portabilidad y legibilidad. Su primera versión apareció al año siguiente y, con el paso de los años, surgieron nuevas actualizaciones: COBOL 74, COBOL 85, etc.

Dado que se buscaba facilitar su lectura, COBOL tiene una sintaxis muy similar al inglés común (figura 5), cuya terminología aparece continuamente: verbos, párrafos, frases, etc. Los programas se estructuran en cuatro divisiones (Identification, Environment, Data, Procedure), que se subdividen en secciones y éstas, a su vez, en párrafos, que constan de frases e instrucciones.

# data[].attributes.body
BASIC

Durante 1964, Thomas E. Kurtz y John G. Kemeny, profesores del Dartmouth College, desarrollaron un lenguaje que ayudaría a los estudiantes a poder introducirse en los sistemas que denominaban como de "tiempo compartido". A este nuevo lenguaje lo denominaron BASIC debido a lo sencillo que era comparado con los ya existentes. Este lenguaje se aplicó tanto para tareas administrativas como para problemas más científicos. El primer ordenador personal diseñado por Microsoft, el Altair de MITS3, se desarrolló en BASIC debido a lo sencillo que resultaba aprender este lenguaje y además su intérprete no ocupaba demasiado espacio de memoria. Más adelante, fue Microsoft quien se encargó de adaptar BASIC para utilizarlo en productos de Apple, en el PC de IBM y en los microordenadores. BASIC es un lenguaje que ha sabido ir adaptándose a las necesidades que se han ido encontrando en el mercado, por eso ha pasado en sus primeras versiones de ser interpretado y un poco ilegible a ser un lenguaje bastante estructurado y compilado

# data[].attributes.body
LOGO

En 1967, Seymour Papert pensó que los alumnos de menor edad tenían que empezar a entender y escribir programas informáticos, por lo que se comenzó a diseñar un lenguaje llamado LOGO para esta finalidad. No fue hasta 1980 que se difundió por el mundo gracias al libro "Mindstorms: Children, Computers and Powerful Ideas". Este libro tuvo un buen recibimiento en el ámbito educativo, más concretamente en primaria y secundaria. Este lenguaje, a lo largo de los años, ha ido perdiendo gran fama debido a que se basa en la utilización de métodos recursivos y listas, que no son tan sencillos de aprender para niños como otros lenguajes que han ido apareciendo, los cuales son realmente más simples para poder explicar cómo se desarrolla un programa.

# data[].attributes.body
C Y C++

En 1969 se crea el sistema operativo UNIX por los investigadores Dennis Ritchie y Kenneth Thompson. Un año más tarde Thompson creó un lenguaje que denominó B, y dos años más tarde su compañero Ritchie, basándose en B, creó C. Este lenguaje lo desarrollaron para que no dependiera de la arquitectura hardware, por lo que consiguieron crear el lenguaje más portable del mercado de ese momento. Fue durante los 80 cuando Bjarne Stroustrup creó una ampliación del lenguaje C, que se acabó convirtiendo en 1984 en el compilador que hoy conocemos como C++, el cual se enfoca a la programación orientada a objetos.

# data[].attributes.body
PASCAL

Un profesor del Instituto Politécnico Federal de Zúrich, Niklaus Wirth, empezó con el desarrollo de PASCAL. Este lenguaje permitió que muchas personas se introdujeran más fácilmente al mundo de la programación gracias a la estructuración que presentaba. PASCAL es considerado el lenguaje que facilita el aprendizaje de la programación utilizando programación estructurada, recursividad, punteros, descomposición modular, etc. Este lenguaje se definió en el libro "PASCAL – User Manual and Report". Fue en 1983 cuando se estandarizó PASCAL y al poco tiempo se lanzó al mercado el compilador PASCAL.

# data[].attributes.body
PROLOG

Este lenguaje declarativo se caracterizaba por estar basado en descripciones y no en órdenes. Con el lenguaje PROLOG, el desarrollador se centraba en darle conocimientos al computador, a la vez que le daba unas reglas, por lo que al hacerle preguntas al computador sobre los conocimientos aportados, el computador hacía deducciones lógicas utilizando la información y reglas aportadas. Este lenguaje, como es de esperar, no se desarrolló con la idea de utilizarlo en ámbitos científicos; se pensó más en la inteligencia artificial y en resolver problemas lógicos.

# data[].attributes.body
JAVA

Por último, en 1990 James Gosling basándose en C y C++ creó lo que hoy en día es uno de los lenguajes más utilizados en Internet, JAVA. Este lenguaje no se creó con el ojo puesto en Internet, sino que realmente quería crear una interfaz más intuitiva para la electrónica de consumo como son las calculadoras, las televisiones y otros dispositivos. Debido a que esta electrónica de consumo no evolucionó como se esperaba se empezó a utilizar JAVA para Internet y se modificó para este uso

# data[].attributes.body
Tipos de datos Un tipo de datos define un conjunto de valores y un conjunto de operaciones que se pueden aplicar a esos valores. El conjunto de valores para cada tipo se conoce como el dominio para el tipo. La mayoría de lenguajes definen dos categorías de tipos de datos: los tipos simples y tipos compuestos.

Un tipo simple es un tipo de datos que no se puede dividir en tipos de datos más pequeños.

Un tipo compuesto es un conjunto de elementos en los que cada elemento es un tipo simple o un tipo de compuesto.

# data[].attributes.body
VARIABLES

son nombres de lugares de memoria. Como se discutió en el capítulo anterior, cada posición de memoria en un ordenador tiene una dirección. Aunque las direcciones son utilizadas por el computador internamente, es muy incómodo para el programador usar las direcciones. Un programador puede utilizar una variable, como la nota (score), para almacenar el valor entero de una nota recibida en un examen. Dado que una variable contiene un elemento de datos, entonces tiene un tipo.

# data[].attributes.body
Un literal es un valor predeterminado utilizado en un programa. Por ejemplo, si tenemos que calcular el área de un círculo cuando el valor del radio se almacena en la variable r, podemos utilizar la expresión 3.14 × r2 , en el que se utiliza el valor aproximado de π (pi) como un literal. En la mayoría de lenguajes de programación podemos tener entero, real, carácter y literales booleanos. En la mayoría de lenguajes, también podemos tener cadenas de literales. Para distinguir los caracteres y cadenas literales de los nombres de variables y otros objetos, la mayoría de los lenguajes requieren que los caracteres literales estén entre comillas simples, como 'A', y las cadenas encerradas entre comillas dobles, como "Anne"

# data[].attributes.body
El uso de literales no se considera buena práctica de programación, a menos que esté seguro de que el valor del literal no va a cambiar con el tiempo (por ejemplo, el valor de π en la geometría). Sin embargo, la mayoría de los literales puede cambiar el valor con el tiempo. Por esta razón, la mayoría de los lenguajes de programación definir constantes. Una constante, como una variable, es un lugar con nombre que puede almacenar un valor, pero el valor no se puede cambiar después de que se ha definido al principio del programa. Sin embargo, si queremos usar el programa más tarde, podemos cambiar una sola línea al comienzo del programa, el valor de la constante.

# data[].attributes.body
Enteros (Integer): Se usan para almacenar números enteros, tanto positivos como negativos, sin parte decimal. Ejemplo: 10, -5, 0.

Enteros (Integer): Se usan para almacenar números enteros, tanto positivos como negativos, sin parte decimal.

Ejemplo: 10, -5, 0.

Ejemplo: 10, 5, 0.

Flotantes (Float): Sirven para almacenar números que tienen decimales. Ejemplo: 3.14, -0.5, 100.25.

Flotantes (Float): Sirven para almacenar números que tienen decimales.

Ejemplo: 3.14, -0.5, 100.25.

Ejemplo: 3.14, 0.5, 100.25.

Cadenas de texto (String): Se emplean para representar texto, es decir, secuencias de caracteres, que suelen ir entre comillas. Ejemplo: "Hola Mundo", "2025".

Cadenas de texto (String): Se emplean para representar texto, es decir, secuencias de caracteres, que suelen ir entre comillas.

Ejemplo: "Hola Mundo", "2025".

Ejemplo: "Hola Mundo", "2025".

Booleanos (Boolean): Representan dos posibles valores: verdadero (true) o falso (false). Ejemplo: true, false.

Booleanos (Boolean): Representan dos posibles valores: verdadero (true) o falso (false).

Ejemplo: true, false.

Ejemplo: true, false.

Caracteres (Char): Un tipo de dato que almacena un solo carácter (una letra, un número o un símbolo). Ejemplo: 'A', '7', '?'.

Caracteres (Char): Un tipo de dato que almacena un solo carácter (una letra, un número o un símbolo).

Ejemplo: 'A', '7', '?'.

Ejemplo: 'A', '7', '?'.

# data[].attributes.body
Un paradigma de programación es un estilo o modelo que define la visión y los métodos de un programador para crear programas, organizando las soluciones en diferentes enfoques como el

Imperativo (secuencia de instrucciones), el Estructurado (control del flujo con bloques), el Declarativo (describe problemas, no el cómo, con los subtipos Funcional y Lógico), y el Orientado a Objetos (organiza datos y operaciones en objetos), entre otros como el Eventos, Paralelo, Distribuido y Concurrente.

Tipos de Paradigmas de Programación

Paradigma Imperativo

Un programa es una secuencia de instrucciones que se ejecutan de arriba hacia abajo.

El flujo de control se interrumpe solo para ejecutar subprogramas o funciones, volviendo después al punto de interrupción.

Paradigma Estructurado

Un caso particular del paradigma imperativo.

Prohíbe el control de flujo caótico y agrupa instrucciones en bloques (procedimientos, funciones).

El código repetido se maneja con estructuras de repetición (ciclos) controladas por una condición lógica.

Paradigma Declarativo

Describe el problema y la forma de resolverlo, pero no el orden exacto de las acciones.

Paradigma Funcional: Todo se describe como funciones.

Paradigma Lógico: Todo se describe como un predicado lógico. La solución se obtiene mediante llamadas a funciones o predicados, basándose en las descripciones proporcionadas.

Paradigma Orientado a Objetos

Basado en principios como:

Encapsulación: Agrupar datos y operaciones en objetos.

Prototipos, Clases y Herencia: Abstraer objetos, definirlos y crear otros a partir de los existentes.

Tipificación y Polimorfismo: Comprobación de tipos dentro de la jerarquía de clases.

Paradigma de Programación por Eventos

El programa se concibe como una iteración continua que detecta eventos y genera el cálculo para tratarlos.

Paradigmas Paralelo, Distribuido y Concurrente

Enfoques para la ejecución simultánea de tareas, con un enfoque en la compartición de recursos y la comunicación entre procesos

# data[].attributes.body
Un entorno de desarrollo integrado (IDE) es una aplicación de software que ayuda a los programadores a desarrollar código de software de manera eficiente. Aumenta la productividad de los desarrolladores al combinar capacidades como editar, crear, probar y empaquetar software en una aplicación fácil de usar.

# data[].attributes.body
1. Eclipse: Fue desarrollado por Eclipse Foundation bajo una licencia de software libre y es multiplataforma, este IDE está pensado para trabajar con Java, aunque también permite trabajar otros lenguajes al añadirle plugins por ejemplo para C++, JavaScript, Python o PHP entre otros. Entre las características de este IDE se encuentran autocompletar código, acceso eficiente a archivos del proyecto, facilidad para probar el código y corrección de sintaxis entre otros (Guindon, s/f).

# data[].attributes.body
NetBeans: Es un IDE escrito en el lenguaje de programación Java y es de código abierto (NetBeans IDE 8.2 Release Information, s/f). Como en el caso de Eclipse, permite trabajar en Java, aunque soporta otros lenguajes de programación mediante configuración como PHP y JavaScript. Entre las características destacadas con las que cuenta se encuentran: sintaxis resaltada, autocompletado de código, soluciones rápidas y soporte para diferentes marcos de trabajo mediante plugins.

# data[].attributes.body
Aranda, V. T. (2004). Historia y evolución de los lenguajes de programación. Manual formativo de ACTA, Espanha, (34), 85-95.

Solano, J. (2011). Lenguajes de programación. Temario. Lima: Universidad Nacional de Ingeniería, Facultad de Ciencias.

de Guevara, J. M. L. (2011). Fundamentos de programación en Java. Editorial EME.

Mathieu, M. J. (2014). Introducción a la programación. Grupo Editorial Patria.