Este documento clasifica los lenguajes de programación de varias maneras: por nivel (bajo y alto), generación (de 1ra a 5ta), área de aplicación (enseñanza, ciencias, comercio, etc.), y paradigma (imperativo u orientado a objetos vs declarativo u funcional/lógico). Explica que los lenguajes pueden agruparse de acuerdo a su cercanía al hardware, capacidad de abstracción, propósito, y estilo de programación.
2. INTRODUCCION Un lenguaje de programación es un CONJUNTO limitado de palabras y de símbolos que representan procedimientos, cálculos, decisiones y otras operaciones que pueden ejecutar una computadora.
3. Clasificación de Lenguajes de Programación I. Por Nivel Los lenguajes pueden ser clasificados como: 1. Lenguajes de bajo nivel – es el que proporciona un conjunto de instrucciones sin la capacidad de encapsular dichas instrucciones en funciones que no estén ya contempladas en la arquitectura del hardware. Ejemplos: El lenguaje de máquina y el lenguaje de ensamblaje. Ventaja: Máxima velocidad y aprovechamiento de los recursos. 2. Lenguajes de alto nivel – es el que permite expresar algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas. Ejemplos: C, C#, Cobol, Fortran, Haskell, Java, Lisp, Perl, Prolog, Visual Basic, etc. Ventajas: Código más fácil de entender e independiente de la arquitectura de la computadora.
4. II. Por Generación Los lenguajes pueden ser clasificados como: 1. Primera generación – lenguaje de máquina; el único que un microprocesador entiende de forma nativa. 2. Segunda generación – lenguaje de ensamblaje; sustituye los códigos de operaciones y las direcciones de memoria por mnemónicas y nombres de variables. Aunque no es lenguaje nativo del microprocesador, se debe conocer la arquitectura del microprocesador (como por ejemplo las particularidades de sus registros o su conjunto de instrucciones). 3. Tercera generación – lenguajes imperativos/procedimentales; permiten expresar algoritmos usando instrucciones parecidas al lenguaje natural. Ejemplos: C, C#, Cobol, Fortran, Java, Perl, Visual Basic, etc. 4. Cuarta generación – lenguajes declarativos asociados a un propósito específico, normalmente aplicaciones comerciales que usan bases de datos o aplicaciones científicas. Ejemplos: ColdFusion, MATLAB, R, RPG, SQL, VRML, etc. 5. Quinta generación – lenguajes declarativos asociados a aplicaciones de inteligencia artificial y sistemas expertos. Ejemplos: Prolog, OPS5, etc.
5. III. Por Área de Aplicación Los lenguajes pueden ser clasificados de acuerdo al área para la cual fueron diseñados: 1. Enseñanza – Basic, Logo, Pascal y Python 2. Aplicaciones científicas – Fortran, Algol, Matlab, R 3. Aplicaciones comerciales – Cobol, RPG, SQL 4. Aplicaciones con interfaces gráficas – Visual Basic, C# 5. Inteligencia artificial y sistemas expertos – Lisp, Prolog, OPS5 6. Programación de sistemas – C, C++ 7. Aplicaciones web – JavaScript, PHP
6. IV. Por Paradigma Fundamentalmente, los lenguajes se pueden clasificar en dos grandes estilos o paradigmas: lenguajes imperativos o lenguajes declarativos. En los lenguajes imperativos, los programas son un conjunto de instrucciones que le indican a la computadora cómo realizar una tarea. En los lenguajes declarativos, los programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen cuál el problema pero no se indican las instrucciones necesarias para solucionarlo.
7. El paradigma imperativo se divide en: 1. Procedimental – los programas se componen de procedimientos o rutinas que detallan las instrucciones para resolver un problema. Se utilizan mucho los enunciados de asignación para cambiar los valores de las variables y las repeticiones se expresan usando ciclos. Ejemplos: C, Cobol, Fortran, Pascal, etc. 2. Orientado a objetos – los programas se componen de objetos que interactúan entre sí por medio de mensajes. Cada objeto pertenece a una clase, contiene datos (campos o atributos) y puede llevar a cabo operaciones (métodos). Se pueden derivar nuevas clases a partir de clases existentes. Ejemplos: C++, C#, Java, Smalltalk, Visual Basic, etc.
8. El paradigma declarativo se divide en: 1. Funcional – los programas se componen de funciones como las definen en matemáticas. Estos lenguajes no poseen enunciados de asignación, sólo de inicialización, y las repeticiones se expresan usando recursión. Las funciones se consideran como valores de primera clase: pueden ser enviadas como argumentos a otras funciones, pueden ser devueltas por otras funciones y pueden ser asociadas a variables. Ejemplos: Lisp, Scheme, ML, Haskell, etc. 2. Lógico – los programas se componen de predicados. Estos predicados pueden ser hechos que indican la relación entre varios elementos, o reglas que permiten deducir información a partir de otros hechos o reglas. Este paradigma se basa en la teoría lógica de primer orden. Ejemplos: Prolog, OPS5, Mercury, etc.
9. CONCLUCION Estudiar los conceptos básicos, clasificación, diferencias, propiedades y funcionamiento de los lenguajes de programación es elemental para cualquier estudiante o profesional dedicado a la computación, pues de esa manera se logra tener una perspectiva global y mucho más amplia que tendrá mucho peso al estar bien documentados y al conocer qué son, cómo se clasifican y de qué manera trabajan los lenguajes de programación.