Vous êtes sur la page 1sur 10

Lenguiajes de programacion Un lenguaje de programacin es un idioma artificial diseado para expresar procesos que pueden ser llevadas a cabo

por mquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana.1 Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el cdigo fuente de un programa informtico se le llama programacin. Tambin la palabra programacin se define como el proceso de creacin de un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los siguientes pasos: El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de programacin especfico (codificacin del programa). Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin. Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y 'lenguaje informtico'. Los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como por ejemplo HTML (lenguaje para el marcado de pginas web que no es propiamente un lenguaje de programacin, sino un conjunto de instrucciones que permiten disear el contenido de los documentos). Permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un programador pueda usar un conjunto comn de instrucciones que sean comprendidas entre ellos para realizar la construccin de un programa de forma colaborativa. LENGUAJE MQUINA: El lenguaje mquina es el nico que entiende directamente la computadora, ya que esta escrito en lenguajes directamente inteligibles por la mquina (computadora), utiliza el alfabeto binario, que consta de los dos nicos smbolos 0 y 1, denominados bits (abreviatura inglesa de dgitos binarios). Sus instrucciones son cadenas binarias (cadenas o series de caracteres de dgitos 0 y 1) que especifican una operacin y, las posiciones (direccin) de memoria implicadas en la operacin se denominan instrucciones de mquina o cdigo maquina.

Ventajas del lenguaje mquina: posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin. Desventajas del lenguaje mquina: dificultad y lentitud en la codificacin. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador (CPU). En la actualidad, las desventajas superan a las ventajas, lo que hace prcticamente no recomendables a los lenguajes mquina. LENGUAJES DE BAJO NIVEL: Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje ensamblador es el primer intento de sustituir el lenguaje maquina por otro ms similar a los utilizados por las personas. Este intenta desflexibilizar la representacin de los diferentes campos. Esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al lenguaje. A principios de la dcada de los 50 y con el fin de facilitar la labor de los programadores, se desarrollaron cdigos mnemotcnicos para las operaciones y direcciones simblicas. Los cdigos mnemotcnicas son los smbolos alfabticos del lenguaje maquina. La computadora sigue utilizando el lenguaje maquina para procesar los datos, pero los programas ensambladores traducen antes los smbolos de cdigo de operacin especificados a sus equivalentes en el lenguaje maquina. En la actualidad los programadores no asignan nmeros de direccin reales a los datos simblicos, simplemente especifican donde quieren que se coloque la primera localidad del programa y el programa ensamblador se encarga de lo dems, asigna localidades tanto para las instrucciones como los datos. Estos programas de ensamble o ensambladores tambin permiten a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio cdigo maquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente. Despus de que el ensamblador convierte el programa fuente en cdigo maquina a este se le denomina programa objeto. Para los programadores es ms fcil escribir instrucciones en un lenguaje ensamblador que en cdigo de lenguaje maquina pero es posible que se requieran dos corridas de computadora antes de que se puedan utilizar las instrucciones del programa fuente para producir las salidas deseadas. El lenguaje de bajo nivel es el lenguaje de programacin que el ordenador puede entender a la hora de ejecutar programas, lo que aumenta su velocidad de ejecucin, pues no necesita un intrprete que traduzca cada lnea de instrucciones. Lenguaje ensamblador (le): Este intenta deflexibilizar la representacin de los diferentes campos, esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al lenguaje LENGUAJES DE ALTO NIVEL:

Estos lenguajes son los mas utilizado por los programadores. Estn diseados para que las personas escriban y entiendan los programas de un modo mucho mas fcil que los lenguajes mquina y ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la mquina (las instrucciones no dependen del diseo del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras. Son lenguajes de programacin en los que las instrucciones enviadas para que el ordenador ejecute ciertas rdenes son similares al lenguaje humano. Dado que el ordenador no es capaz de reconocer estas ordenes, es necesario el uso de un intrprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender. Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por elementos de lenguajes naturales, como el ingls. En BASIC, el lenguaje de alto nivel ms conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rgida y sistemtica. Desventajas de los lenguajes de alto nivel: incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la maquina que se explotan mucho mejor en lenguajes mquina y ensambladores. Aumento de la ocupacin de memoria. El tiempo de ejecucin de los programas es mucho mayor. Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso, adems de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos. Es difcil establecer una clasificacin general de los mismos, ya que en cualquiera que se realice habr lenguajes que pertenezcan a mas de uno de los grupos establecidos. Una clasificacin muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofa con que fueron concebidos, es la siguiente: Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada). Lenguajes declarativos. Los programas se construyen mediante descripciones de funciones o expresiones lgicas (Lisp, Prolog). Lenguajes orientados a objetos. El diseo de los programas se basa mas en los datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los datos (variables) y las operaciones que actan sobre ellos (Smalltalk, C++). Lenguajes orientados al problema. Diseados para problemas especficos, principalmente de gestin, suelen ser generadores de aplicaciones.

Lenguajes naturales. Estn desarrollndose nuevos lenguajes con el principal objetivo de aproximar el diseo y construccin de programas al lenguaje de las personas. Otra clasificacin que se puede hacer es la de atendiendo al desarrollo de los lenguajes desde la aparicin de las computadoras, que sigue un cierto paralelismo con las generaciones establecidas en la evolucin de las mismas: Primera generacin. Lenguajes maquina y ensambladores. Segunda generacin. Primeros lenguajes de alto nivel imperativo (FROTRAN, COBOL). Tercera generacin. Lenguajes de alto nivel imperativo. Son los mas utilizados y siguen vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA). Cuarta generacin. Orientados bsicamente a las aplicaciones de gestin y al manejo de bases de datos (NATURAL, SQL). Quinta generacin. Orientados a la inteligencia artificial y al procesamiento de los lenguajes naturales (LISP, PROLOG). Para la mejor compresin se harn unas definiciones: Programa: es un conjunto de instrucciones escritas en un lenguaje de programacin que indican a la computadora la secuencia de pasos, para resolver un problema. Cdigo fuente: esta creado en algn lenguaje de alto nivel, por lo que es entendido 100% por el ser humano. Este debe estar complementado por su documentacin o manuales donde se indica el desarrollo lgico del mismo. Cdigo objeto: es creado por los compiladores y nos sirve como enlace entre el programa fuente y el ejecutable. Caractersticas de los lenguajes de programacin Las computadoras calculan elctricamente por medio de pulsos de corriente y voltajes que representan formasde comunicacin por dems ajenas al lenguaje humanos. As pues, el medio que permite entablar lacomunicacin con las mquinas se conoce como lenguaje de programacin. An con su corta duracin, la historia de la computacin electrnica ha producido varios cientos de lenguajes deprogramacin ampliamente reconocidos y utilizados. Al principio se acercaban mucho al lenguaje propio de lascomputadoras (ceros y unos), pero se han ido transformando para acercarse ms a las lenguas humanas comoel ingls o bien a formas grficas mas expresivas y sintticas. Entre ms cercano a la computadora es unlenguaje se le denomina de bajo nivel, lo contrario es de alto nivel.Existen cinco generaciones de lenguajes de programacin, en donde cada uno mejora a sus predecesores encuanto a las facilidades que otorga al programador.

1.Lenguaje mquina.2. Lenguajes ensambladores.3. Lenguajes de alto nivel.4. Lenguajes de muy alto nivel.5. Lenguajes naturales. Lenguaje Mquina El lenguaje mquina, el de ms bajo nivel, representadatos e instrucciones con dgitos binarios (0s y 1s), y elelemento ejecutor es la circuitera misma de lacomputadora. Al principio de la comunicacin electrnicacada mquina tena su propio lenguaje, y losprogramadores tenan sistemas rudimentarios paracombinar nmeros que representaran instruccionessimples como SUMAR y COMPARAR. Los mtodos deprogramacin en este lenguaje son tediosos e imprcticos,por lo que la comunidad del cmputo se movirpidamente para desarrollar lenguajes ensambladores. Lenguajes Ensambladores En su momento, los lenguajes ensambladoresconstituyeron un gran avance; en lugar de usar ceros yunos se utilizan cdigos mnemnicos (para ayudar a lamemoria) o abreviatura fciles de recordar para lasinstrucciones: ADD (sumar), STO (almacenar), C(comparar), etctera. Para usar un lenguaje ensambladorse requiere un lenguaje traductor que convierta losprogramas en ensamblador a lenguaje mquina que es elnico que comprende la computadora. Este traductor sellama programa ensamblador. An cuando losensambladores representaron un paso adelante, todavatenan muchos inconvenientes, por ejemplo, que sondetallados en extremo y su programacin es tediosa,repetitiva y propensa al error. Lenguaje de alto nivel La investigacin sobre los lenguajes de alto nivel se iniciaen 1945, con el ingeniero alemn Konrad Zuse, pero hastael inicio de los 1960 que se generaliza su uso,transformando radicalmente la actividad de laprogramacin. Estos lenguajes se asemejan ms a lalengua humana, particularmente el ingls, con menosdetallados y con menos declaraciones describen tareasms complejas para la computadora. Como resultado, losprogramadores logran trabajos de mayor alcance y conmenos esfuerzo. Obviamente se requiere de un traductorde las declaraciones simblicas de un lenguaje de altonivel al lenguaje mquina ejecutable por la computadora,estos traductores se llaman compiladores (el primero sedesarrollo en 1952). Existen compiladores para cadalenguaje y cada mquina, pero una ventaja de loslenguajes de alto nivel es que se pueden trasladar de unamquina a otra con pocas o nulas modificaciones.Entre los lenguajes de esta generacin se encuentran losde propsito general como BASIC, FORTRAN y COBOL quehan sido muy populares. Adems se encuentran Pascal, Cy sus derivados. Lenguaje de muy alto nivel. Los lenguajes de la cuarta generacin, 4GLs, son llamados lenguajes de muy alto nivel. Su definicin es mscomplicada que los anteriores. Se trata esencialmente delos lenguajes de programacin taquigrficos; unaoperacin que requiere de

cientos de lneas en un lenguajede tercera generacin, como COBOL, requiere tpicamentede unas cinco a diez lneas en uno de cuarta generacin.Entre las caractersticas de estos lenguajes est el que nosson de procedimientos. En los lenguajes de procedimientosse dice con detalle a la computadora la tarea a realizar. Enlos declarativos se define solamente lo que se haga. Porejemplo, producir un reporte del tratamiento realizado aun conjunto de datos. Enfatizan el qu en lugar del cmo.Obviamente los que elaboran lenguajes declarativos hanhecho trabajo que para muchos de los usuarios mejoran laproductividad, porque los programas son ms fciles deescribir y actualizar, pueden ser usados con un mnimo deentrenamiento y ahorran al usuario la necesidad deconocer a fondo el hardware y la programacin.Entre los inconvenientes de estos lenguajes se encuentraque no han uso eficiente de los recursos computacionales. Lenguaje Natural En la quinta generacin se encuentran los llamadosLenguajes naturales, por su acercamiento a la lenguaescrita. El uso de un lenguaje natural con una base deconocimientos produce un sistema basado en elconocimiento. Una clase de estos sistemas son losSistemas expertos, que son base de la InteligenciaArtificial. (IA) Interpretes y compiladores Existen dos tipos principales de traductores de los lenguajes de programacin de alto nivel: Compilador e intrprete. Existen dos tipos principales de traductores de los lenguajes de programacin de alto nivel: Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la mquina). Su accin equivale a la de un traductor humano, que toma un libro y produce otro equivalente escrito en otra lengua. Intrprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningn cdigo equivalente. Su accin equivale a la de un intrprete humano, que traduce las frases que oye sobre la marcha, sin producir ningn escrito permanente. Intrpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios: Un intrprete facilita la bsqueda de errores, pues la ejecucin de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Adems, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecucin. Un compilador suele generar programas ms rpidos y eficientes, ya que el anlisis del lenguaje fuente se hace una sola vez, durante la generacin del programa equivalente. En cambio, un intrprete se ve obligado generalmente a analizar cada instruccin tantas veces como se ejecute (incluso miles o millones de veces).

Un intrprete permite utilizar funciones y operadores ms potentes, como por ejemplo ejecutar cdigo contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intrprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores. Diferencias entre Compilador e Interprete Los compiladores difieren de los intrpretes en varios aspectos: Un programa que ha sido compilado puede correr por si solo, pues en el proceso de compilacin se lo transformo en otro lenguaje (lenguaje mquina). Un intrprete traduce el programa cuando lo lee, convirtiendo el cdigo del programa directamente en acciones. La ventaja del intrprete es que dado cualquier programa se puede interpretarlo en cualquier plataforma (sistema operativo), en cambio el archivo generado por el compilador solo funciona en la plataforma en donde se lo ha creado. Pero por otro lado un archivo compilado puede ser distribuido fcilmente conociendo la plataforma, mientras que un archivo interpretado no funciona si no se tiene el intrprete. Hablando de la velocidad de ejecucin un archivo compilado es de 10 a 20 veces ms rpido que un archivo interpretado. Lenguaje C C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolucin del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el lenguaje de programacin ms popular para crear software de sistemas, aunque tambin se utiliza para crear aplicaciones. Se trata de un lenguaje dbilmente tipificado de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en ensamblador con cdigo C o acceder directamente a memoria o dispositivos perifricos. La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El lenguaje que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de este estndar es muy amplia

por lo que, si los programas creados lo siguen, el cdigo es porttil entre plataformas y/o arquitecturas. Caracteristicas del lenguaje C++ Las principales caractersticas del Lenguaje C son: 1.-Tiene un conjunto completo de instrucciones de control. 2.-Permite la agrupacin de instrucciones. 3.-Incluye el concepto de puntero (variable que contiene la direccin de otra variable). 4.-Los argumentos de las funciones se transfieren por su valor. 5.- E/S no forma parte del lenguaje, sino que se proporciona a travs de una biblioteca de funciones. Permite la separacin de un programa en mdulos que admiten compilacin independiente. Originalmente el Lenguaje C estuvo muy ligado al sistema operativo UNIX como se haba mencionado antes que, en su mayor parte, est escrito en C. Ms adelante se comenz a utilizar en otros sistemas operativos para programar editores, compiladores, etc. Aunque se le conoce como un lenguaje de programacin de sistemas, no se adapta mal al resto de aplicaciones. De hecho, hoy en da un alto porcentaje de software para ordenadores personales est escrito en Lenguaje C. Por ejemplo, el sistema operativo MS-DOS.

Algunas de las caractersticas ms importantes que definen el lenguaje y que han permitido que sea tan popular, como lenguaje de programacin son:

Tamao pequeo. Uso extensivo de llamadas a funciones. Comandos breves (poco tecleo). Lenguaje estructurado. Programacin de bajo nivel (nivel bit) Implementacin de apuntadores - uso extensivo de apuntadores para la memoria, arreglos, estructuras y funciones Las diversas razones por la cual se ha convertido en un lenguaje de uso profesional son:

El uso de constructores de alto nivel. El poder manejar actividades de bajo-nivel. El generar programas eficientes. La posibilidad de poder ser compilado en una variedad de computadoras, con pocos cambios (portabilidad). Un punto en contra es que tiene una deteccin pobre de errores, lo cual en ocasiones es problemtico para los principiantes [B]Las principales caractersticas del Lenguaje C son:

1.-Tiene un conjunto completo de instrucciones de control. 2.-Permite la agrupacin de instrucciones. 3.-Incluye el concepto de puntero (variable que contiene la direccin de otra variable). 4.-Los argumentos de las funciones se transfieren por su valor. 5.- E/S no forma parte del lenguaje, sino que se proporciona a travs de una biblioteca de funciones. Permite la separacin de un programa en mdulos que admiten compilacin independiente. Originalmente el Lenguaje C estuvo muy ligado al sistema operativo UNIX como se haba mencionado antes que, en su mayor parte, est escrito en C. Ms adelante se comenz a utilizar en otros sistemas operativos para programar editores, compiladores, etc. Aunque se le conoce como un lenguaje de programacin de sistemas, no se adapta mal al resto de aplicaciones. De hecho, hoy en da un alto porcentaje de software para ordenadores personales est escrito en Lenguaje C. Por ejemplo, el sistema operativo MS-DOS. Algunas de las caractersticas ms importantes que definen el lenguaje y que han permitido que sea tan popular, como lenguaje de programacin son:

Tamao pequeo. Uso extensivo de llamadas a funciones. Comandos breves (poco tecleo).

Lenguaje estructurado. Programacin de bajo nivel (nivel bit) Implementacin de apuntadores - uso extensivo de apuntadores para la memoria, arreglos, estructuras y funciones Las diversas razones por la cual se ha convertido en un lenguaje de uso profesional son:

El uso de constructores de alto nivel. El poder manejar actividades de bajo-nivel. El generar programas eficientes. La posibilidad de poder ser compilado en una variedad de computadoras, con pocos cambios (portabilidad). Un punto en contra es que tiene una deteccin pobre de errores, lo cual en ocasiones es problemtico para los principiantes

Vous aimerez peut-être aussi