sábado, 3 de noviembre de 2012

¿Qué es Lenguaje de programación?



Definiciones

1.     Un lenguaje de programación es aquel elemento dentro de la informática que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposición del programador para que este pueda comunicarse con los dispositivos hardware y software existentes.

 2.  Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML.


 3. Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo. Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes.

 4. Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno. John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí.¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios.La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación (opcode) . Por ejemplo, una calculadora programable simple podría asignar los opcodes : 

1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.

 Supongamos que queremos realizar la operación 5 * 3 + 2, en la calculadora descrita arriba. En memoria, podríamos "escribir" el programa de la siguiente forma: Localidad Opcode Significado Comentario 0 5 5 En esta localidad, tenemos el primer número de la fórmula 1 3 * En esta localidad, tenemos el opcode que representa la multiplicación. 2 3 3 En esta localidad, tenemos el segundo número de la fórmula 3 1 + En esta localidad, tenemos el opcode que representa la suma. 4 2 2 En esta localidad, tenemos el último número de la fórmula Podemos ver que con esta representación, es simple expresar las operaciones de las que es capaz el hardware (en este caso, nuestra calculadora imaginaria), en la memoria.La descripción y uso de los opcodes es lo que llamamos lenguaje de máquina . Es decir, la lista de códigos que la máquina va a interpretar como instrucciones, describe las capacidades de programación que tenemos de ella; es el lenguaje más primitivo, depende directamente del hardware, y requiere del programador que conozca el funcionamiento de la máquina al más bajo nivel. los lenguajes más primitivos fueron los lenguajes de máquina. Esto, ya que el hardware se desarrolló antes del software, y además cualquier software finalmente tiene que expresarse en el lenguaje que maneja el hardware.La programación en esos momentos era sumamente tediosa, pues el programador tenía que "bajarse" al nivel de la máquina y decirle, paso a pasito, cada punto de la tarea que tenía que realizar. Además, debía expresarlo en forma numérica; y por supuesto, este proceso era propenso a errores, con lo que la productividad del programador era muy limitada. Sin embargo, hay que recordar que en estos momentos, simplemente aún no existía alternativa.El primer gran avance que se dio, como ya se comentó, fue la abstracción dada por el Lenguaje Ensamblador, y con él, el nacimiento de las primeras herramientas automáticas para generar el código máquina. Esto redujo los errores triviales, como podía ser el número que correspondía a una operación, que son sumamente engorrosos y difíciles de detectar, pero fáciles de cometer. Sin embargo, aún aquí es fácil para el programador perderse y cometer errores de lógica, pues debe bajar al nivel de la forma en que trabaja el CPU, y entender bien todo lo que sucede dentro de él.Con el desarrollo en los 50s y 60s de algoritmos de más elevado nivel, y el aumento de poder del hardware, empezaron a entrar al uso de computadoras científicos de otras ramas; ellos conocían mucho de Física, Química y otras ramas similares, pero no de Computación, y por supuesto, les era sumamente complicado trabajar con lenguaje Ensamblador en vez de fórmulas. Así, nació el concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inició como un "simple" esfuerzo de traducir un lenguaje de fórmulas, al lenguaje ensamblador y por consiguiente al lenguaje de máquina. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: buscar la mayor abstracción posible, y facilitar la vida al programador, aumentando la productividad, encargándose los compiladores o intérpretes de traducir el lenguaje de alto nivel, al lenguaje de computadora.Hay que notar la existencia de lenguajes que combinan características de los de alto nivel y los de bajo nivel (es decir, Ensamblador). Mi ejemplo favorito es C: contiene estructuras de programación de alto nivel, y la facilidad de usar librerías que también son características de alto nivel; sin embargo, fue diseñado con muy pocas instrucciones, las cuales son sumamente sencillas, fáciles de traducir al lenguaje de la máquina; y requiere de un entendimiento apropiado de cómo funciona la máquina, el uso de la memoria, etcétera. Por ello, muchas personas consideramos a lenguajes como C (que fue diseñado para hacer sistemas operativos), lenguajes de nivel medio.


Clasificación


Los lenguajes de programación se pueden clasificar atendiendo a varios criterios:


Según su nivel de abstracción

- Lenguajes Maquina: están escritos en lenguajes directamente inteligibles por la maquina (computadora), ya que sus instrucciones son cadenas binarias (0 y 1).

- Lenguajes de bajo nivel Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel por excelencia es el código máquina.


- Lenguajes de medio nivel: Lenguaje de medio nivel es un lenguaje de programación informática como el lenguaje C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel.

- Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés

Según la forma de ejecución

Lenguajes compilados 

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina.

Lenguajes interpretados

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez 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.

Según el paradigma de programación


Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro, sino que cada uno tiene ventajas y desventajas. Dependiendo de la situación un paradigma resulta más apropiado que otro.

Atendiendo al paradigma de programación, se pueden clasificar los lenguajes en:

El paradigma imperativo o por procedimientos es considerado el más común y está representado, por ejemplo, por el C o por BASIC.

El paradigma funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell.  El paradigma lógico, un ejemplo es PROLOG.
El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk

Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:
  • Lenguajes imperativos: 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.
  •  Lenguajes funcionales. 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.

A continuación, encontrará una breve lista de los lenguajes de programación actuales:
LenguajePrincipal área de aplicaciónCompilado/interpretado
ADATiempo realLenguaje compilado
BASICProgramación para fines educativosLenguaje interpretado
CProgramación de sistemaLenguaje compilado
C++Programación de sistema orientado a objetoLenguaje compilado
CobolAdministraciónLenguaje compilado
FortranCálculoLenguaje compilado
JavaProgramación orientada a InternetLenguaje intermediario
MATLABCálculos matemáticosLenguaje interpretado
Cálculos matemáticosCálculos matemáticosLenguaje interpretado
LISPInteligencia artificialLenguaje intermediario
PascalEducaciónLenguaje compilado
PHPDesarrollo de sitios web dinámicosLenguaje interpretado
Inteligencia artificialInteligencia artificialLenguaje interpretado
PerlProcesamiento de cadenas de caracteres
Lenguaje interpretado






FORTRAN

Es un lenguaje de programación alto nivel de propósito general procedimental e imperativo, que está especialmente adaptado al cálculo numérico y a la computación científica. Desarrollado por IBM en 1957 para el equipo IBM 704, y usado para aplicaciones científicas y de ingeniería, el FORTRAN vino a dominar esta área de la programación desde el principio y ha estado en uso continuo por más de medio siglo en áreas de cómputo intensivo tales como la predicción numérica del tiempo, análisis de elementos finitos, dinámica de fluidos computacional (CFD), física computacional y química computacional. Es uno de los lenguajes más populares en el área de la computación de alto rendimiento
Fue diseñado teniendo en cuenta que los programas serían escritos en tarjetas perforadas de 80 columnas. Así por ejemplo, las líneas debían ser numeradas y la única alteración posible en el orden de ejecución era producida con la instrucción goto. Estas características han evolucionado de versión en versión.
Lo que fue la primera tentativa de proyección de un lenguaje de programación de alto nivel, tiene una sintaxis considerada arcaica por muchos programadores que aprenden lenguajes más modernos. Es difícil escribir un bucle "for", y errores en la escritura de sólo un carácter pueden llevar a errores durante el tiempo de ejecución en vez de errores de compilación, en el caso de que no se usen las construcciones más frecuentes. Algunas de las versiones anteriores no poseían facilidades que son consideradas como útiles en las máquinas modernas, como la asignación dinámica de memoria.
Algunas otras versiones subsiguientes fueron:
  • FORTRAN IV
  • FORTRAN 66
  • FORTRAN 77
  • Fortran 90
  • Fortran 95
  • Fortran 2003
  • Fortran 2008
  • Fortran 2010



COBOL

Fue creado en el año 1959 con el objetivo de crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador, ya que en los años 1960 existían numerosos modelos de ordenadores incompatibles y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión.
COBOL es un lenguaje artificial, COBOL viene de las Iniciales de:
COmmon Business Oriented Language
Los objetivos que se establecieron para el nuevo lenguaje fueron:
  • Sintaxis cercana al lenguaje hablado (inglès).
  • Uso restringido de sìmbolos especiales (pocos).
  • Màxima potencia en el tratamiento de ficheros.
  • Intrucciones de càlculo reducidas al mìnimo imprescindible.
  • Amplias posibilidades de evoluciòn futura.
  • Independencia del ordenador empleado.
COBOL fue dotado de unas excelentes capacidades de autodocumentación

Una buena gestión de archivos y una excelente gestión de los tipos de datos para la época, a través de la conocida sentencia PICTURE para la definición de campos estructurados. Para evitar errores de redondeo en los cálculos que se producen al convertir los números a binario y que son inaceptables en temas comerciales, COBOL puede emplear y emplea por defecto números en base diez. Para facilitar la creación de programas en COBOL, la sintaxis del mismo 

Análisis

De lo que es el lenguaje de programación es muy importante en nuestra vidas cotidianas, privadas e informáticas ya que lo utilizamos mucho para personalizar un programar o para la creación según nuestro rango (novato,experimentado y experto),requerimientos, usos o de acuerdo a nuestros gustos, por que como se conoce es una serie de instrucciones, procedimientos o datos que enviamos al ordenador o Pc para poner a la disposición del programador para que existan formas de  comunicarse con los dispositivos hardware y software de los elementos que se necesiten utilizar para mejorar, personalizar o crear algún tipo de componente deseado según las instrucciones que le queramos asignar la maquina conjunto de reglas sintácticas y semánticas las cuales deben definir la estructura y otorgarles el significado de sus elementos,para describir el conjunto de acciones consecutivas que un equipo debe ejecutar y controlar el comportamiento del equipo; Por ello, el lenguaje de programación es una manera muy práctica para que los seres humanos puedan dar instrucciones y crear herramientas automáticas para establecer la generación del código máquina lo Esto redujo muchos los errores triviales, como podía ser el número que se le corresponda a una operación, que son sumamente engorrosos y difíciles de detectar, pero fáciles de cometer; pero gracias a estos errores han existido mucho lenguajes de programación con mejoras avanzadas a otros y mucha facilidad de maneja sobre lo que desee elaborar el programador,Casi todo lo que vemos en el computador como aplicaciones, ventanas de información y hasta el navegador web, hasta un simple blog están desarrollados por un lenguaje de programación; en conclusion el lenguaje de programación es introducir una serie de códigos en lenguaje natural para que el programa lo interprete y realice la acción que se le está pidiendo en el cual  Podemos notar que la necesidad de expandir la informática ha tomado lugar en las aplicaciones que hoy en día se necesitan algunos lenguajes nuevos los cuales se utilizan para las aplicaciones donde se necesitan requerimientos en los cuales de Todos estos avances y mejoras de los lenguajes de programación para que sea mucho mas fácil manejar el software y hardware de una manera de que todo puedan aprender o manejar el equipo y asignarles las instrucciones de una manera sumamente fácil entre el humano y el computador.


FUENTES CONSULTADAS:

http://catedraprogramacion.foroactivo.net/t83-definicion-de-lenguaje-de-programacion-tipos-ejemplos
https://jorgesaavedra.wordpress.com/2007/05/05/lenguajes-de-programacion/
http://es.kioskea.net/contents/langages/langages.php3
http://www.monografias.com/trabajos/lengprog/lengprog.shtml


Peter Abel. IBM PC Assembly Language and Programming. Fourth Edition. Prentice Hall. 1997.

http://highland.dit.upm.es:8000/UNIX/movs1/2dirsist.html

http://docs.inf.utfsm.cl/pub/DI/labsw/manual_c/node1.html

http://docs.inf.utfsm.cl/pub/DI/labsw/manual_c/node2.html

http://docs.inf.utfsm.cl/pub/DI/labsw/manual_c/node3.html

http://www.fing.edu.uy/~yemurenk/indexsort.html

http://www.cs.us.es/archive/LinuxFocus/Castellano/May1998/article11.html


No hay comentarios:

Publicar un comentario