sábado, 12 de noviembre de 2011

Introducción a la programación: Lenguaje de programación

En vista de que pienso ir creando varias entradas relacionadas con la programación buena idea es ir dando conceptos e información sobre los temas a tratar.
En este caso, hablaremos sobre algunos de los conceptos de programación.
Iniciemos entonces con la frase clave:  


Lenguaje de programación.
Un lenguaje de programación es un idioma artificial, que se comunica o controla con un o unos dispositivos digitales (ejemplo: pc), creado para desarrollar aplicaciones lógicas  que controlen física  o lógicamente al dispositivo. Usan reglas gramaticales para su escritura, mejor conocidas como reglas sintácticas (sintaxis) y semánticas (sentido o significado), las cuales declaran la estructura de un programa dado.

Además de esta definición también seria bueno explicar que es programar, programar es escribir programas, sencillo,¿Verdad?... Esto es codificar(escribir) en un lenguaje de programacion una serie de instrucciones que tengan como fin un o unos objetivos específicos.
Ejemplo: 
  • Desarrollar un programa que realice las tablas de multiplicar.
  • Escribir un programa que me permita visitar paginas web(un navegador web). 
  • Diseñar una aplicación que reproduzca archivos de video y audio.
Todos estos son ejemplos de programas(aplicaciones).
Noten que use "desarrollar", "escribir", "diseñar". Refiriéndome claramente a la misma acción, programar.

No esta de mas decir que un programador es una persona que escribe programas.

Tipos de lenguajes
En la programación existen niveles de abstracción con la comunicación entre programador y maquina. Estos niveles se clasifican de la siguiente manera:


El contenido de aquí hasta donde se indique ah sido obtenido y modificado de Wikipedia.
Lenguaje Máquina - Las invocaciones a memoria, como los procesos aritmético lógicos son posiciones literales de conmutadores físicos del hardware en su representación booleana. Estos lenguajes son literales de tareas.


       En español significa que la comunicación hombre-maquina esta reducida a su mínima expresión, esto es, las ordenes o instrucciones están dadas por código binario(0 y 1).


Lenguajes de bajo nivel - Son instrucciones que ensamblan los grupos de conmutadores necesarios para expresar una mínima lógica aritmética. Están íntimamente vinculados al hardware. Por norma general están disponibles a nivel firmware, cmos o chip set. Estos lenguajes están orientados a procesos. Los procesos se componen de tareas. Contienen tantas instrucciones como la arquitectura del hardware así haya sido diseñada.
  • Por ejemplo: La arquitectura CISC contiene muchas mas instrucciones a este nivel, que la RISC.
  • Son denominados como ensambladores de un hardware concreto.
Esto quiere decir que la conversión de lenguaje ensamblador a código maquina es casi inmediata, las instrucciones y operaciones disponibles están dadas por el tipo de dispositivo sobre el que se va a programar. Como otros ejemplos de lenguajes ensambladores tenemos el MASM para Windows y  GCC en GNU/Linux.

Lenguajes de medio nivel - Son aquellos que, basándose en los juegos de instrucciones disponibles (chip set), permiten el uso de funciones a nivel aritmético, pero a nivel lógico dependen de literales en ensamblador. Estos lenguajes están orientados a procedimientos. Los procedimientos se componen de procesos.
  • Ejemplos: C, Basic.
Como explicación podemos decir que son lenguajes intermedios, osea pueden ejecutar instrucciones de ensamblador y tener comunicación directa con los dispositivos y también permiten instrucciones de tipo alto nivel.


Lenguajes de alto nivel - Son aquellos que permiten una máxima flexibilidad al programador a la hora de abstraerse o de ser literal. Permiten un camino bidireccional entre el lenguaje máquina y una expresión casi oral entre la escritura del programa y su posterior compilación. Estos lenguajes están orientados a objetos. Los objetos se componen de propiedades cuya naturaleza emerge de procedimientos.
  • Ejemplos: C++, Fortran, Cobol, Lisp.
En definitiva, este tipo de lenguajes contienen expresiones mas humanas y amenas, dando la oportunidad al programador de desarrollar aplicaciones mas robustas. Pero tambien mencionar que no todos los lenguajes de alto nivel tienen como paradigma la programacion orientada a objetos, al menos no de manera principal.


Lenguajes de aplicaciones - Son aquellos que no permiten una bidireccionalidad conceptual entre el lenguaje máquina y los lenguajes de alto nivel, ni tampoco la literalidad a la hora de invocar conceptos lógicos. Se basan en librerías creadas en lenguajes de alto nivel. Pueden permitir la creación de nuevas librerías, pero son propietarias y dependientes de las suministradas por la aplicación. Estos lenguajes están orientados a eventos. Los eventos acontecen cuando las propiedades de un objeto interactúan con otro.
  • Ejemplos: En Windows Visual Basic ,GNU/Linux Gambas.
Este tipo de lenguajes facilitan la creación de programas, y están pensados para ser usados en User Interface(UI, Interfaz de usuario). Pero dejan a escondidas la mayoría de las instrucciones. Conocidos también como RAD (rapid application development, Desarrollo Rápido de Aplicaciones).
 

Lenguajes de redes - Son aquellos que se basan en un convenio de instrucciones totalmente independientes de la máquina, y completamente dependientes de la red a la que están orientadas. Se dividen en descriptivos (HTML, XML, VML), de cliente-Servidor (Java, PHP) y de script (Python, Ruby).
Específicamente hablando los descriptivos no son lenguajes de programacion, son solo etiquetas que diseñan la estructura de un documento. Mientras que los que son llamados scripting y Cliente-Servidor si son lenguajes de programacion y algunos de ellos no solo se limitan a funcionar sobre la red en la que indica la explicación, como ejemplo tenemos a Java, que es mencionado del tipo Cliente - Servidor, sin embargo es de propósito general y bien puede ser usado para la creación de GUI (Graphics User Interface, Interfaz Gráfica de Usuario).
Hasta aquí termina el tema de los Lenguajes de programación. Ha faltado mucho, mucho mas, pero esto no es un curso o titulación.
De ahora en adelante es parte de ustedes que aprendan mas.
Nos vemos en la próxima entrega.


Obtenido de Wikipedia y modificado:
Link
Siendo así que el contenido de la publicación contiene la licencia Creative Commons Atribución/Compartir-Igual 3.0
Bajo los siguientes términos: términos.

No hay comentarios:

Publicar un comentario

Piensa dos veces o mas antes de escribir... :D