Está en la página 1de 49

LENGUAJE DE PROGRAMACION

ALFONSO JAVIER CAMACHO AMAYA

IVAN HERNANDEZ 2009214058

UNIVERSIDAD DEL MAGDALENA 22 DE FEBRERO DE 2010 SANTA MARTA - MAGDALENA

INTRODUCCION
Este trabajo es con el fin de profundizar y tener ms conocimientos acerca de gran importancia de la historia del lenguaje de programacin ya que conocer la historia de los diversos campo del saber del ser humano es de vital importancia para luego no cometer errores que ya se han cometido y tratar de ser lo mas ligero posible en el rea. Los lenguaje de programacin son de vital importancia para el manejo y el uso de la computadora, ya que podemos lograr brindarle un mejor rendimiento y facilidad de acceso a los usuarios para que aprovechen el uso y los beneficios que le s ofrece esta.

Objetivo General
El objetivo de este trabajo es llegar a aprender y conocer los diferentes lenguajes de programacin, como se utilizan, para que se utilizan, como se desarrollan, para que lo podemos usar, etc. Aprenderemos a reconocer y a diferenciar un lenguaje de otro, las ventajas, caractersticas y diferencias que presenta cada uno de ellos y la importancia que representan en el mundo de la informtica a travs de su historia.

Contenido El bit. Valores de los bit. El byte. Kilobytes Y Megabytes. Sistema De Numeracin Binario. Sistema De Numeracin Hexadecimal. Lenguaje De Programacin. Historia. Tipos De Lenguaje De Programacin. Compiladores. Tipos De Compiladores. Fases Del Proceso De Compilacin. Proceso De Compilacin En C.

El bit (dgito binario)


El trmino bit (abreviado con la minscula b) significa dgito binario, y corresponde al nmero 0 o 1 en la numeracin binaria. Es la unidad de informacin ms pequea que puede manipular una mquina digital. Es posible representar esta informacin binaria:

con una seal elctrica o magntica que, ms all de un cierto nivel, representa el 1, a travs de la aspereza o profundidad de los hoyos de una superficie, utilizando circuitos elctricos, componentes elctricos que poseen dos condiciones estables (una que representa al 1 y la otra al 0).

Por lo tanto, el bit se puede establecer con uno de dos estados: tanto con 1 como 0. Con dos bits, se pueden obtener 4 condiciones diferentes (2x2): 0 0 1 1 0 1 0 1

Con 3 bits, se pueden obtener ocho condiciones diferentes (2x2x2): Valor binario de 3 bitsValor decimal 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 Con un grupo n de bits, es posible representar 2 n valores.

Valores de los bits


En un nmero binario, el valor de un bit depende de su posicin, empezando desde la derecha. Como las decenas, centenas y millares en un nmero decimal, el valor de un bit se incrementa por dos a medida que va desde la derecha hacia la izquierda, como se muestra en el siguiente cuadro: Numero binario 1 Valor
7

1
6

1
5

1
4

1
3

1
2

1
1

2 = 128 2 = 64 2 = 32 2 = 16 2 = 8 2 = 4 2 = 2 20 = 1

Conversin
Para convertir una cadena binaria en un nmero decimal se debe multiplicar cada bit por su valor, y luego sumar los productos. De esta forma, la cadena binaria 0101 en nmero decimal sera:
23x0 + 22x1 + 21x0 + 20x1 = 8x0 + 4x1 + 2x0 + 1x1 =5

El byte
El byte (abreviado con la mayscula B) es una unidad de informacin compuesta por 8 bits. Se puede utilizar para almacenar, entre otras cosas, un carcter, como por ejemplo una letra o un nmero. Agrupar nmeros en cmulos de 8 facilita su lectura, as como agrupar nmeros en grupos de tres hace ms legibles los millares cuando se trabaja en base decimal. Por ejemplo, el nmero "1.256.245" se lee mejor que "1256245". Por lo general, una unidad de informacin de 16 bits se denomina palabra. Una unidad de informacin de 32 bits se denomina palabra doble (o tambin, dword). Para un byte, el menor nmero posible es 0 (representado por ocho ceros: 00000000), y el mayor es 255 (representado por ocho unos: 11111111), que permite la creacin de 256 valores diferentes. 27 =128 26 =64 25 =32 24 =16 23 =8 22 =4 21 =2 20 =1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Kilobytes Y Megabytes
Durante mucho tiempo, la informtica fue una ciencia inusual ya que utilizaba diferentes valores para sus unidades, diferentes a las del sistema mtrico (tambin llamado "sistema Internacional"). Los usuarios de ordenadores aprendan con rapidez que 1 kilobyte estaba compuesto por 1024 bytes. Por este motivo, en diciembre de 1998, la Comisin Electrotcnica Internacional intervino en el tema. La lista siguiente incluye las unidades estandarizadas de la IEC:

Un kilobyte (kB) = 1000 bytes Un megabyte (MB) = 1000 kB = 1.000.000 bytes Un gigabyte (GB) = 1000 MB = 1.000.000.000 bytes Un terabyte (TB) = 1000 GB = 1.000.000.000.000 bytes

El IEC tambin defini el kilo binario (kibi), al mega binario (mebi), al giga binario (gibi) y al tera binario (tebi). Se definieron de la siguiente manera:

Un kibibyte (kiB) vale 210 = 1024 bytes Un mebibyte (MiB) vale 220 = 1.048.576 bytes Un gibibyte (GiB) vale 230 = 1.073.741.824 bytes Un tebibyte (TiB) vale 240 = 1.099.511.627.776 bytes

En algunos idiomas, como el francs y el finlands, la palabra byte no empieza con la letra "b", pero la mayor parte de la comunidad internacional prefiere el trmino en ingls "byte". Esto da las siguientes notaciones para kilobyte, megabyte, gigabyte, y terabyte:
kB, MB, GB, TB.

Sistema De Numeracin Binario


El sistema de numeracin binario utiliza slo dos dgitos, el cero (0) y el uno (1). En una cifra binaria, cada dgito tiene distinto valor dependiendo de la posicin que ocupe. El valor de cada posicin es el de una potencia de base 2, elevada a un exponente igual a la posicin del dgito menos uno. Se puede observar que, tal y como ocurra con el sistema decimal, la base de la potencia coincide con la cantidad de dgitos utilizados (2) para representar los nmeros. De acuerdo con estas reglas, el nmero binario 1011 tiene un valor que se calcula as: 1*23 + 0*22 + 1*21 + 1*20 , es decir: 8 + 0 + 2 + 1 = 11 y para expresar que ambas cifras describen la misma cantidad lo escribimos as: 10112 = 1110

Conversin Entre Nmeros Decimales Y Binarios


Convertir un nmero decimal al sistema binario es muy sencillo: basta con realizar divisiones sucesivas por 2 y escribir los restos obtenidos en cada divisin en orden inverso al que han sido obtenidos. Por ejemplo, para convertir al sistema binario el nmero 7710 haremos una serie de divisiones que arrojarn los restos siguientes: 77 : 2 = 38 Resto: 1 38 : 2 = 19 Resto: 0 19 : 2 = 9 Resto: 1 9 : 2 = 4 Resto: 1 4 : 2 = 2 Resto: 0 2 : 2 = 1 Resto: 0 1 : 2 = 0 Resto: 1 y, tomando los restos en orden inverso obtenemos la cifra binaria: 7710 = 10011012

El Tamao De Las Cifras Binarias


La cantidad de dgitos necesarios para representar un nmero en el sistema binario es mayor que en el sistema decimal. En el ejemplo del prrafo anterior, para representar el nmero 77, que en el sistema decimal est compuesto tan slo por dos dgitos, han hecho falta siete dgitos en binario. Para representar nmeros grandes harn falta muchos ms dgitos. Por ejemplo, para representar nmeros mayores de 255 se necesitarn ms de ocho dgitos, porque 28 = 256 y podemos afirmar, por tanto, que 255 es el nmero ms grande que puede representarse con ocho dgitos. Como regla general, con n dgitos binarios pueden representarse un mximo de 2n, nmeros. El nmero ms grande que puede escribirse con n dgitos es una unidad menos, es decir, 2n 1. Con cuatro bits, por ejemplo, pueden representarse un total de 16 nmeros, porque 24 = 16 y el mayor de dichos nmeros es el 15, porque 24-1 = 15.

Conversin De Binario A Decimal


El proceso para convertir un nmero del sistema binario al decimal es an ms sencillo; basta con desarrollar el nmero, teniendo en cuenta el valor de cada dgito en su posicin, que es el de una potencia de 2, cuyo exponente es 0 en el bit situado ms a la derecha, y se incrementa en una unidad segn vamos avanzando posiciones hacia la izquierda.

Por ejemplo, para convertir el nmero binario 10100112 a decimal, lo desarrollamos teniendo en cuenta el valor de cada bit: 1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 83 10100112 = 8310

Sistema De Numeracin Hexadecimal


En el sistema hexadecimal los nmeros se representan con diecisis smbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Se utilizan los caracteres A, B, C, D, E y F representando las cantidades decimales 10, 11, 12, 13, 14 y 15 respectivamente, porque no hay dgitos mayores que 9 en el sistema decimal. El valor de cada uno de estos smbolos depende, como es lgico, de su posicin, que se calcula mediante potencias de base 16. Calculemos, a modo de ejemplo, el valor del nmero hexadecimal 1A3F16: 1A3F16 = 1*163 + A*162 + 3*161 + F*160 1*4096 + 10*256 + 3*16 + 15*1 = 6719 1A3F16 = 671910 Ensayemos, utilizando la tcnica habitual de divisiones sucesivas, la conversin de un nmero decimal a hexadecimal. Por ejemplo, para convertir a hexadecimal del nmero 173510 ser necesario hacer las siguientes divisiones: 1735 : 16 = 108 108 : 16 = 6 6 : 16 = 0 Resto: 7 Resto: C es decir, 1210 Resto: 6

De ah que, tomando los restos en orden inverso, resolvemos el nmero en hexadecimal: 173510 = 6C716 La conversin entre nmeros hexadecimales y binarios se realiza "expandiendo" o "contrayendo" cada dgito hexadecimal a cuatro dgitos binarios. Por ejemplo, para expresar en hexadecimal el nmero binario 1010011100112 bastar con tomar grupos de cuatro bits, empezando por la derecha, y reemplazarlos por su equivalente hexadecimal: 10102 = A16

01112 = 716 00112 = 316 y, por tanto: 1010011100112 = A7316 En caso de que los dgitos binarios no formen grupos completos de cuatro dgitos, se deben aadir ceros a la izquierda hasta completar el ltimo grupo. Por ejemplo: 1011102 = 001011102 = 2E16 La conversin de nmeros hexadecimales a binarios se hace del mismo modo, reemplazando cada dgito hexadecimal por los cuatro bits equivalentes de la tabla. Para convertir a binario, por ejemplo, el nmero hexadecimal 1F616 hallaremos en la tabla las siguientes equivalencias: 116 = 00012 F16 = 11112 616 = 01102 y, por tanto: 1F616 = 0001111101102

Lenguaje De Programacin Historia


Los primeros lenguajes de programacin surgieron de la idea de Charles Babagge, la cual se le ocurri a este hombre a mediados del siglo XIX. Era un

profesor matemtico de la universidad de Cambridge e inventor ingles, que la principio del siglo XIX predijo muchas de las teoras en que se basan los actuales ordenadores. Consista en lo que l denominaba la maquina analtica, pero que por motivos tcnicos no pudo construirse hasta mediados del siglo XX. Con l colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aqulla supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lgicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programacin, sobre todo si observamos que en cuanto se empez a programar, los programadores utilizaron las tcnicas diseadas por Charles Babagge, y Ada, que consistan entre otras, en la programacin mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios de antao, se adelantaron un siglo a su poca, lo cual describe la inteligencia de la que se hallaban dotados. En 1823 el gobierno Britnico lo apoyo para crear el proyecto de una mquina de diferencias, un dispositivo mecnico para efectuar sumas repetidas. Pero Babagge se dedico al proyecto de la mquina analtica, abandonando la maquina de diferencias, que se pudiera programar con tarjetas perforadas, gracias a la creacin de Charles Jacquard (francs). Este hombre era un fabricante de tejidos y haba creado un telar que poda reproducir automticamente patrones de tejidos, leyendo la informacin codificada en patrones de agujeros perforados en tarjetas de papel rgido. Entonces Babagge intento crear la mquina que se pudiera programar con tarjetas perforadas para efectuar cualquier clculo con una precisin de 20 dgitos. Pero la tecnologa de la poca no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge no llegaron a materializarse de forma definitiva, su contribucin es decisiva, ya que los ordenadores actuales responden a un esquema anlogo al de la mquina analtica. En su diseo, la mquina constaba de cinco unidades bsicas: 1) Unidad de entrada, para introducir datos e instrucciones; 2) Memoria, donde se almacenaban datos y resultados intermedios; 3) Unidad de control, para regular la secuencia de ejecucin de las operaciones; 4) Unidad Aritmtico-Lgica, que efecta las operaciones; 5) Unidad de salida, encargada de comunicar al exterior los resultados. Charles Babbage, conocido como el "padre de la informtica" no pudo completar en aquella poca la construccin del computador que haba soado, dado que faltaba algo fundamental: la electrnica. El camino sealado de Babbage, no fue nunca abandonado y siguindolo, se construyeron los primeros computadores. Cuando surgi el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And Calculator), su programacin se basaba en componentes fsicos, o sea, que se programaba, cambiando directamente el Hardware de la maquina, exactamente lo que s hacia era cambiar cables de sitio para conseguir as la programacin de la maquina. La entrada y salida de datos se realizaba mediante tarjetas perforadas.

Lenguaje De Programacin
Un lenguaje de programacin es un idioma artificial diseado para expresar computaciones 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. Est formado de 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.

Tipos de lenguaje de programacin


El ordenador slo entiende un lenguaje conocido como cdigo binario o cdigo mquina, consistente en ceros y unos. Es decir, slo utiliza 0 y 1 para codificar cualquier accin. Los lenguajes ms prximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran ms cercanos a los programadores y usuarios se denominan lenguajes de alto nivel.

Lenguajes de bajo nivel


Son lenguajes totalmente dependientes de la mquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. Al estar prcticamente diseados a medida del hardware, aprovechan al mximo las caractersticas del mismo. Dentro de este grupo se encuentran:

Lenguajes De Mquina

El lenguaje mquina de una computadora consta de cadenas de nmeros binarios (ceros y unos) y es el nico que "entienden" directamente los procesadores. Todas las instrucciones preparadas en cualquier lenguaje de mquina tienen por lo menos dos partes. La primera es el comando u operacin, que dice a la computadora cul es la funcin que va a realizar. Todas las computadoras tienen un cdigo de operacin para cada una de sus funciones. La segunda parte de la instruccin es el operando, que indica a la computadora dnde hallar o almacenar los datos y otras instrucciones que se van a manipular; el nmero de operandos de una instruccin vara en las distintas computadoras. En una computadora de operando nico, el equivalente binario de "SUMAR 0814" podra hacer que se sume el valor que se encuentra en la localidad de almacenamiento o direccin 0814 al valor que se encuentra en la unidad aritmtica lgica. En una mquina de dos operandos, la representacin binaria de "SUMAR 0814 8672" podra hacer que se sume el valor que est en la localidad 8672 al valor que est en la direccin 0814. El formato de operando nico es popular en las microcomputadoras ms pequeas; la estructura de dos operandos se encuentra en casi todas las dems mquinas. Segn los estndares actuales, las primeras computadoras eran poco tolerantes. Los programadores tenan que traducir las instrucciones de manera directa a la forma de lenguaje de mquina que comprendan las computadoras. Por ejemplo, un programador que escribiera la instruccin "SUMAR 0814" para una de las primeras mquinas IBM hubiera escrito: 000100000000000000000000000010111000 Adems de recordar las docenas de cdigos numricos para los comandos del conjunto de instrucciones de la mquina, el programador tena que conocer las posiciones donde se almacenan los datos y las instrucciones. La codificacin inicial muchas veces requera meses, por lo que era costosa y era frecuente que originara errores. Revisar las instrucciones para localizar errores era casi tan tedioso como escribirlas por primera vez. Adems, si era necesario modificar un programa posteriormente, la tarea poda llevarse meses.

Lenguajes Ensambladores
A principios de la dcada de 1950, y con el fin de facilitar la labor de los programadores, se desarrollaron cdigos nemotcnicos para las operaciones y direcciones simblicas. La palabra nemotcnico se refiere a una ayuda para la memorizacin. Uno de los primeros pasos para mejorar el proceso de preparacin de programas fue sustituir los cdigos de operaciones numricos del lenguaje de mquina por smbolos alfabticos, que son los cdigos nemotcnicos. Todas las computadoras actuales tienen cdigos nemotcnicos aunque, naturalmente, los smbolos que se usan varan en las diferentes marcas y modelos. La computadora sigue utilizando el lenguaje de mquina para procesar los datos, pero los

programas ensambladores traducen antes los smbolos de cdigo de operacin especificados a sus equivalentes en lenguaje de mquina. Este procedimiento prepar avances posteriores. Si la computadora era capaz de traducir smbolos convenientes en operaciones bsicas, por qu no hacer tambin que realizara otras funciones rutinarias de codificacin, como la asignacin de direcciones de almacenamiento a los datos? La tcnica de direccionamiento simblico permite expresar una direccin no en trminos de su localizacin numrica absoluta, sino en trminos de smbolos convenientes para el programador. Durante las primeras etapas del direccionamiento simblico, el programador asigna un nombre simblico y una direccin real a un dato. Por ejemplo, el programador podra asignar el valor total de mercanca adquirida durante un mes por un cliente de una tienda de departamentos a la direccin 0063, y darle el nombre simblico TOTAL. Se podra asignar el valor de la mercanca devuelta sin usar durante el mes a la direccin 2047 y drsele el nombre simblico CRDITO. As, durante el resto del programa, el programador se referir a los nombres simblicos, ms que a las direcciones, cuando fuera preciso procesar estos datos. Por ejemplo, se podra escribir la instruccin "S CRDITO TOTAL" para restar el valor de las mercancas devueltas del importa total de compras para obtener el importe de la factura mensual del cliente. A continuacin, el programa ensamblador traducira la instruccin simblica a esta cadena de bits:

Ms adelante se hizo otra mejora. Se dej a la computadora la tarea de asignar y recordar las direcciones de las instrucciones. Lo nico que tena que hacer el programador era indicar a la computadora la direccin de la primera instruccin, y el programa ensamblador se encargaba de almacenar, de manera automtica, todas las dems en forma secuencial a partir de ese punto. As, si se agregaba ms tarde otra instruccin al programa, no era necesario modificar las direcciones de todas las instrucciones que seguan al punto de insercin (como tendra que hacerse en el caso de programas escritos en lenguaje de mquina). En vez de ello, el procesador ajustaba automticamente las localidades de memoria la prxima vez que se ejecutaba el programa. En la actualidad, los programadores no asignan nmeros de direccin reales a los datos simblicos, simplemente especifican dnde 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 para los datos.

Estos programas de ensamble, o ensamblador, tambin permite a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio cdigo de mquina. 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 de mquina a ste se le denomina programa objeto. Para los programadores es ms fcil escribir instrucciones en un lenguaje ensamblador que en cdigos de lenguajes de mquina, 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. Los lenguajes ensambladores tienen ventajas sobre los lenguajes de mquina. Ahorran tiempo y requieren menos atencin a detalles. Se incurren en menos errores y los que se cometen son ms fciles de localizar. Adems, los programas en lenguaje ensamblador son ms fciles de modificar que los programas en lenguaje de mquina. Pero existen limitaciones. La codificacin en lenguaje ensamblador es todava un proceso lento. Una desventaja importante de estos lenguajes es que tienen una orientacin a la mquina. Es decir, estn diseados para la marca y modelo especfico de procesador que se utiliza, y es probable que, para una mquina diferente, se tengan que volver a codificar los programas.

Lenguajes De Alto Nivel


Los primeros programas ensambladores producan slo una instruccin en lenguaje de mquina por cada instruccin del programa fuente. Para agilizar la codificacin, se desarrollaron programas ensambladores que podan producir una cantidad variable de instrucciones en lenguaje de mquina por cada instruccin del programa fuente. Dicho de otra manera, una sola macroinstruccin poda producir varias lneas de cdigo en lenguaje de mquina. Por ejemplo, el programador podra escribir "LEER ARCHIVO", y el programa traductor producira una serie detallada de instrucciones al lenguaje de mquina previamente preparadas, con lo que se copiara un registro del archivo que estuviera leyendo el dispositivo de entrada a la memoria principal. As, el programador no se tena que ocupar de escribir una instruccin por cada operacin de mquina realizada. El desarrollo de las tcnicas nemotcnicas y las macroinstrucciones condujo, a su vez, al desarrollo de lenguajes de alto nivel que a menudo estn orientados hacia una clase determinada de problemas de proceso. Por ejemplo, se han diseado varios lenguajes para procesar problemas cientfico-matemtico, asimismo han aparecido otros lenguajes que hacen hincapi en las aplicaciones de proceso de archivos. A diferencia de los programas de ensamble, los programas en lenguaje de alto nivel se pueden utilizar con diferentes marcas de computadores sin tener que hacer modificaciones considerables. Esto permite reducir sustancialmente el costo

de la reprogramacin cuando se adquiere equipo nuevo. Otras ventajas de los lenguajes de alto nivel son:

Son ms fciles de aprender que los lenguajes ensambladores. Se pueden escribir ms rpidamente. Permiten tener mejor documentacin. Son ms fciles de mantener. Un programador que sepa escribir programas en uno de estos lenguajes no est limitado a utilizar un solo tipo de mquina.

Lenguajes Compilados
Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene que traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores que pueden realizar esta operacin se llaman compiladores. stos, como los programas ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema. Los Compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo binario). Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el cdigo.

Lenguajes Interpretados
Se puede tambin 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 cdigo objeto que se produce durante la corrida de compilacin para utilizarlo en una corrida de Produccin futura, el programador slo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuacin, un programa intrprete, almacenado en el Sistema Operativo del disco, o incluido de manera permanente dentro de la mquina, convierte cada proposicin del programa fuente en lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el cdigo objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez y traducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea

ms lento en tiempo de ejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpido en tiempo de Diseo (porque no se tiene que estar compilando a cada momento el cdigo completo). El intrprete elimina la necesidad de realizar una corrida de compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de produccin.

Lenguajes De Programacin Declarativos


Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos lenguajes de programacin en los cuales se le indica a la computadora qu es lo que se desea obtener o qu es lo que se esta buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan ms de 32 aos. Eso se puede lograr con un lenguaje declarativo como SQL. La programacin declarativa es una forma de programacin que implica la descripcin de un problema dado en lugar de proveer una solucin para dicho problema, dejando la interpretacin de los pasos especficos para llegar a dicha solucin a un intrprete no especificado. La programacin declarativa adopta, por lo tanto, un enfoque diferente al de la programacin imperativa tradicional. En otras palabras, la programacin declarativa provee el "qu", pero deja el "cmo" liberado a la implementacin particular del intrprete. Por lo tanto se puede ver que la programacin declarativa tiene dos fases bien diferenciadas, la declaracin y la interpretacin. Es importante sealar que a pesar de hacer referencia a intrprete, no hay que limitarse a "lenguajes interpretados" en el sentido habitual del trmino, sino que tambin se puede estar trabajando con "lenguajes compilados".

Caractersticas De Los Lenguajes De Programacin Declarativos

Los lenguajes declarativos estn orientados a buscar la solucin del problema, sin preocuparse por la forma de llegar a ello; es decir, el programador debe concentrarse en la lgica del algoritmo, ms que en el control de la secuencia. Los programas estn formados por un conjunto de definiciones o ecuaciones, las cuales describen lo que debe ser calculado, no en s la forma de hacerlo. Las variables slo pueden tener asignado un solo valor a lo largo de la ejecucin del programa, lo cual implica que no puede existir asignacin destructiva. Debido a esto, cobra especial importancia el uso del anidamiento y la recursividad. Las listas representan la estructura fundamental de datos.

El orden de la ejecucin no resulta importante debido a que no existen efectos colaterales; es decir, que al calcular un valor, resulta imposible afectar el clculo de otros y con esto se puede afirmar que cualquier secuencia de ejecucin deber conducir al mismo resultado. Las expresiones o definiciones pueden ser usadas como valores y por lo tanto se pueden tratar como argumentos de otras definiciones. El control de la ejecucin no es responsabilidad del programador.

Desventajas De La Programacin Declarativa


La principal desventaja de la programacin declarativa es que no puede resolver cualquier problema dado, sino que est restringida al subconjunto de problemas para los que el intrprete o compilador fue diseado. Otra desventaja de la programacin declarativa est relacionada con la eficiencia. Dado que es necesaria una fase de interpretacin extra, en la cual se deben evaluar todas las consecuencias de todas las declaraciones realizadas, el proceso es relativamente ms lento que en la programacin imperativa, en que los cambios de estado del sistema estn dados por instrucciones particulares y no por un conjunto de condiciones arbitrariamente grande.

Ventajas De La Programacin Declarativa


A pesar de lo anterior existen algunas ventajas en el uso de la programacin declarativa. Entre las ventajas se destaca que la solucin de un problema se puede realizar con un nivel de abstraccin considerablemente alto, sin entrar en detalles de implementacin irrelevantes, lo que hace a las soluciones ms fcil de entender por las personas. La resolucin de problemas complejos es resuelta por el intrprete a partir de la declaracin de las condiciones dadas. La programacin declarativa es muy usada en la resolucin de problemas relacionados con inteligencia artificial, bases de datos, configuracin, y comunicacin entre procesos; sin embargo, ningn leguaje declarativo se aproxima en popularidad a los lenguajes imperativos.

Ejemplos De Lenguajes Declarativos


Algunos lenguajes declarativos que se pueden mencionar son:

PROLOG SQL HTML WSDL (Web Services Description Language) XML Stylesheet Language for Transformation

Programacin Lgica

La idea fundamental de la programacin lgica consiste en emplear la lgica como lenguaje de programacin. La lgica no es imperativa porque no sirve para indicar cmo resolver un problema (rdenes). La lgica es declarativa porque sirve para especificar qu problema resolver (condiciones). En la programacin lgica, se especifican las condiciones que satisfacen las soluciones, se deducen las soluciones a partir de las condiciones y el nfasis de todo est en qu problema resolver. El problema se describe especificando qu caracteriza a sus posibles soluciones. La programacin lgica, junto con la funcional, forma parte de lo que se conoce como programacin declarativa. En los lenguajes tradicionales, la programacin consiste en indicar cmo resolver un problema mediante sentencias; en la programacin lgica, se trabaja de forma descriptiva, estableciendo relaciones entre entidades, indicando no cmo, sino qu hacer. Se establece entonces que la idea esencial de la programacin lgica es: algoritmos = lgica + control. Es decir, un algoritmo se construye especificando conocimiento en un lenguaje formal (lgica de primer orden), y el problema se resuelve mediante un mecanismo de inferencia (control) que acta sobre aqul. Al hacer un recorrido por la programacin lgica, aparece como uno de sus lenguajes ms representativos, Prolog, que es un clsico de la inteligencia artificial y que se aplica de mltiples formas en el desarrollo de software comercial.

Programacin Funcional
La programacin funcional es un paradigma de programacin declarativa basado en la utilizacin de funciones matemticas. El objetivo de la programacin funcional es conseguir lenguajes expresivos y matemticamente elegantes, en los que no sea necesario bajar al nivel de la mquina para describir el proceso llevado a cabo por el programa. Los programas escritos en un lenguaje funcional estn constituidos nicamente por definiciones de funciones, entendiendo stas no como subprogramas clsicos de un lenguaje imperativo (pues la programacin funcional es declarativa), sino como funciones puramente matemticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresin depende nicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales. Otras caractersticas propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracin (lo que obliga en la prctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).

Existen dos grandes categoras de lenguajes funcionales: los funcionales puros y los hbridos. La diferencia entre ambos estriba en que los lenguajes funcionales hbridos son menos dogmticos que los puros, al permitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignacin de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje hbrido.

Programacin Orientada A Bases De Datos


Las bases de datos son programas que administran informacin y hacen ms ordenada la informacin, aparte de hacer la fcil de buscar y por supuesto de encontrar. Las caractersticas de las bases de datos pueden ser ventajosas o desventajosas: pueden ayudar a almacenar, organizar, recuperar, comunicar y manejar informacin en formas que seran imposibles sin las computadoras, pero tambin afecta de alguna manera ya que existen enormes cantidades de informacin en bases de datos de las que no se tiene control del acceso. Las bases de datos tienen muchos usos: facilitan el almacenamiento de grandes cantidades de informacin; permiten la recuperacin rpida y flexible de informacin, con ellas se puede organizar y reorganizar la informacin, as como imprimirla o distribuirla en formas diversas. Es claro que los lenguajes orientados a bases de datos son declarativos y no imperativos, pues el problema es "qu" se quiere hacer o "qu" se necesita buscar y encontrar en la base de datos, y no se enfatiza el "cmo". Una base de datos tambin se puede definir como un banco de datos o conjunto de datos que pertenecen al mismo contexto, almacenados sistemticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayora por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y gracias al desarrollo tecnolgico de campos como la informtica y la electrnica, la mayora de las bases de datos tienen formato electrnico, que ofrece un amplio rango de soluciones al problema de almacenar datos. Los sistemas gestores de bases de datos (SGBD) permiten almacenar y posteriormente acceder a los datos de forma rpida y estructurada.

Tipos De Bases De Datos

Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su clasificacin, que puede ser segn la variabilidad de los datos almacenados o segn el contenido.

Clasificacin De Bases De Datos Segn La Variabilidad De Los Datos Almacenados


Esta clasificacin depende de cmo los datos cambian o varan dentro de la base de datos, o si se mantienen estticos sin sufrir modificaciones o cambios. Dentro de esta clasificacin se tiene lo siguiente:

Bases De Datos Estticas: stas son bases de datos de slo lectura,


utilizadas primordialmente para almacenar datos histricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a travs del tiempo, realizar proyecciones y tomar decisiones.

Bases De Datos Dinmicas: stas son bases de datos donde la


informacin almacenada se modifica con el tiempo, permitiendo operaciones como actualizacin y adicin de datos, adems de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de informacin de una tienda de abarrotes, una farmacia, un videoclub, etc.

Clasificacin De Bases De Datos Segn Contenido


Esta clasificacin basa su enfoque en el contenido o lo que almacena la base de datos, de esta manera:

Bases De Datos Bibliogrficas: Solo contienen un "representante" de


la fuente primaria, que permite localizarla. Un registro tpico de una base de datos bibliogrfica contiene informacin sobre el autor, fecha de publicacin, editorial, ttulo, edicin, de una determinada publicacin, etc. Puede contener un resumen o extracto de la publicacin original, pero nunca el texto completo, porque sino se estara en presencia de una base de datos a texto completo (o de fuentes primarias). Como su nombre lo indica, el contenido son cifras o nmeros. Por ejemplo, una coleccin de resultados de anlisis de laboratorio, entre otras. Bases De Datos De Texto Completo: Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una coleccin de revistas cientficas. Directorios: Un ejemplo son las guas telefnicas en formato electrnico.

Banco De Imgenes, Audio, Multimedia, Etc.

Lenguajes De Programacin Imperativos

En ciencias de la computacin se llama lenguajes imperativos a aquellos en los cuales se le ordena a la computadora cmo realizar una tarea siguiendo una serie de pasos o instrucciones, por ejemplo: Paso 1, solicitar nmero. Paso 2, multiplicar nmero por dos. Paso 3, imprimir resultado de la operacin. Paso 4, etc, El proceso anterior se puede realizar con un lenguaje imperativo como por ejemplo BASIC, C, C++, Java, Clipper, Dbase, C#, PHP, Perl, etc. Dentro de la programacin imperativa, se tiene un conjunto de instrucciones que le indican al computador cmo realizar una tarea. Los lenguajes imperativos se basan en comandos u rdenes que se le dan a la computadora para que haga algo, con el fin de organizar o cambiar valores en ciertas partes de la memoria. La ejecucin de estos comandos se realiza, en la mayor parte de ellos, secuencialmente, es decir, hasta que un comando no ha sido ejecutado no se lee el siguiente. Segn el dominio, o mejor dicho con el propsito que se utiliza el programa, se puede hablar de lenguajes de dominio especfico y de dominio general.

Lenguajes Imperativos Procedurales


En los lenguajes tradicionales o procedurales, es la aplicacin quien controla qu porciones de cdigo se ejecuta, y la secuencia en que este se ejecuta. La ejecucin de la aplicacin se inicia con la primera lnea de cdigo, y sigue una ruta predefinida a travs de la aplicacin, llamando procedimientos segn sea necesario. Los lenguajes procedurales estn fundamentados en la utilizacin de variables para almacenar valores y en la realizacin de operaciones con los datos almacenados. Algunos ejemplos son: FORTRAN, PASCAL, C, ADA, ALGOL, En este tipo de lenguajes, la arquitectura consta de una secuencia de celdas, llamadas memoria, en las cuales se pueden guardar en forma codificada, lo mismo datos que instrucciones; y de un procesador, el cual es capaz de ejecutar de manera secuencial una serie de operaciones, principalmente aritmticas y booleanas, llamadas comandos. En general, un lenguaje procedural ofrece al

programador conceptos que se traducen de forma natural al modelo de la mquina. El programador tiene que traducir la solucin abstracta del problema a trminos muy primitivos, cercanos a la mquina. Con un lenguaje procedural el usuario (normalmente ser un programador) especifica qu datos se necesitan y cmo obtenerlos. Esto quiere decir que el usuario debe especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la informacin requerida. Estos lenguajes acceden a un registro, lo procesan y basndose en los resultados obtenidos, acceden a otro registro, que tambin deben procesar. As se va accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un lenguaje procedural deben estar embebidas en un lenguaje de alto nivel, ya que se necesitan sus estructuras (bucles, condicionales, etc.) para obtener y procesar cada registro individual.

Algunos Lenguajes Imperativos


Algunos lenguajes de programacin imperativos que se pueden mencionar son:

BASIC C C++ Java C# PHP Perl

Diferencia Entre Lenguajes Declarativos E Imperativos


En los lenguajes declarativos las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto ltimo se realizar mediante mecanismos internos de inferencia de informacin a partir de la descripcin realizada. Los lenguajes imperativos describen paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado un programa y hallar la solucin, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar un problema.

Lenguaje De Programacin Shortcode


En 1949,aparece el primer lenguaje que se us en computadoras electrnicas: Shortcode, requera que el programador convirtiera (compilara) su programa a 0's y 1's de manera manual.

A-0
Fue hasta el ao de 1951, que Grace Hopper[3] trabajando para Remington Rand, comienza a desarrollar el primer compilador, lo que trajo consigo una programacin ms rpida.

Fortran
Abreviatura de FORmula TRANslator (traductor de formulas), fue definido alrededor del ao 1955 en Estados Unidos por la compaa IBM. Es l ms antiguo de los lenguajes de alto nivel. Antes de l, todos los programas se escriban en lenguaje ensamblador o en lenguaje mquina. Es un lenguaje especializado en aplicaciones tcnicas y cientficas. Se caracteriza por su potencia en los clculos matemticos, pero esta limitado en las aplicaciones de gestin, manejo de archivos, tratamiento de cadenas de caracteres y edicin de informes. Es un lenguaje notorio, por la facilidad con que permite expresar una ecuacin. Muchas de sus caractersticas fueron incorporadas mas tarde en el primer lenguaje BASIC. Una de sus ventajas es que es un lenguaje compacto y es tambin ampliamente utilizado para aplicaciones en los negocios que no requieren manejo de grandes archivos de datos. Hasta 1961 se mantuvo como monopolio de IBM, pero posteriormente se fue implementando en ordenadores de otros fabricantes. A lo largo de su existencia han aparecido diferentes versiones, entre las que destaca la adoptada en 1966 por el ANSI (American National Standards Institute), en la que se definieron nuevas reglas del lenguaje y se logro la independencia del mismo con respecto a la mquina; es decir, comenzo la portabilidad del lenguaje. Esta versin se denomin FORTRAN IV o FORTRAN 66, y el idioma se hizo tan popular en los aos 60, que FORTRAN 66 se volvi el primer idioma en ser regularizado oficialmente en 1972. En 1977 apareci una nueva versin mas evolucionada que se llamo FORTRAN V o FORTRAN 77. Est reflejada en el documento ANS X3.9-1978: Programming Language FORTRAN y define dos niveles del lenguaje denominados FORTRAN 77 completo y FORTRAN 77 bsico, siendo el segundo un subconjunto del primero. Incluye, adems, instrucciones para el manejo de cadenas de caracteres y de archivos, as como otras para la utilizacin de tcnicas de programacin estructurada. Estas caractersticas hacer que el lenguaje tambin sea valido para determinadas aplicaciones de gestin. A mediados de los aos setenta se proporcionaron virtualmente cada computadora, mini o mainframe, con un sistema FORTRAN 66 normal. Era por consiguiente posible escribir programas en FORTRAN en cualquier sistema y estar bastante seguro que estos pudieran moverse para trabajar en cualquier otro sistema bastante fcil. Esto, y el hecho que pudieran procesarse programas de FORTRAN muy eficazmente. La ultima normalizacin del lenguaje, FRONTRAN 90, se encuentra en el documento ANS X3.198-1991 en la que se incluyen caractersticas como la recursividad, tratamiento paralelo de tablas y uso de memoria dinmica. Permite expresar los programas de maneras que se satisfacen mas a un ambiente de la informtica moderna y han quedado obsoletos muchos de los mecanismos que eran apropiados en FROTRAN 77. En

FROTRAN 90 algunos rasgos de FROTRAN 77 han sido reemplazados por rasgos mejores, mas seguros y ms eficaces, muchos de estos fueron quitados del idioma FORTRAN 95. El FRONTRAN tiene la ventaja de ser un lenguaje compacto que sirve muy bien para satisfacer las necesidades de los cientficos y los estadsticos de los negocios.

Lisp
En informtica, acrnimo de List Processing. Un lenguaje de programacin para ordenadores o computadoras orientado a la generacin de listas, desarrollado en 1959-1960 por John McCarthy y usado principalmente para manipular listas de datos o de smbolos. El lenguaje LISP constituy un cambio radical con respecto a los lenguajes procedurales (FORTRAN, ALGOL) que se desarrollaban por entonces. El LISP es un lenguaje interpretado, en el que cada expresin es una lista de llamadas a funciones. Este lenguaje se sigue utilizando con frecuencia en investigacin y en crculos acadmicos, y fue considerado durante mucho tiempo el lenguaje modelo para la investigacin de la inteligencia artificial (IA), aunque el Prolog ha ganado terreno durante los ltimos aos.

Algol
El ALGOL (ALGOritmic Language) fue presentado en 1958. Fue el primer lenguaje de programacin de proceso estructurado de alto nivel. Fue orientado al uso de quienes participan en proyectos cientficos y matemticos. Un grupo internacional de matemticos europeos y americanos, pretendan crear un lenguaje comn normalizado que les permitiera el intercambio de algoritmos, aunque esta en desuso, fue el primero que incorporo conceptos claves para la programacin actual. Su principal contribucin es ser la raiz del arbol que ha producido lenguajes tales como pascal, C, C++, y Java.

Cobol
Es el lenguaje mas utilizado en las aplicaciones de gestin, creado en 1960 por un comit denominado CODASYL (COnference on DAta SYstems Languages), patrocinado por el Departamento de Defensa de Estados Unidos, a fin de disponer de un lenguaje universal para aplicaciones comerciales, como expresa su nombre (COmmnon Business Oriented Language). A lo largo de su existencia ha sufrido diversas actualizaciones. Su primer estndar fue aprobado por el ANSI en 1968. Posteriormente, en 1974, se adopta la norma

ANS X3.23-1974, que ha perdurado hasta su ultima versin, COBOL ANS-85, que facilita el diseo estructurado de los programas. Sus caractersticas ms destacables son las siguientes: se asemeja al lenguaje natural (ingls), es autodocumentado y ofrece grandes facilidades en el manejo de archivos, as como en la edicin de informes escritos. Puede emplear trminos comnmente utilizados en los negocios. Entre sus inconvenientes estn sus rgidas reglas de formatos de escritura, la necesidad de escribir todos los elementos al mximo detalle, la extensin excesiva en sus sentencias, e incluso duplicacin en algunos casos, y la inexistencia de funciones matemticas. No obstante, se puede afirmar que en la actualidad continua siendo el lenguaje mas utilizado en las aplicaciones de gestin.

Basic
El lenguaje BASIC fue diseado por los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College (Estados Unidos) en 1965, con el objetivo principal de proporcionar a los principiantes un lenguaje fcil de aprender, como se indica en su nombre Beginner's All-purpose Symbolic Instruction Code (Cdigo de instrucciones simblico de propsito general para principiantes). Es un lenguaje interactivo muy popular que tiene una aceptacin debido a la facilidad de su uso, es un idioma simple para aprender y fcil de traducir. Que s interactivo, permite la comunicacin directa entre el usuario y el sistema de computo durante la preparacin y uso de los programas. Entre sus principales novedades estn las de ser un lenguaje interpretado y de uso conversacional, til para aplicaciones tcnicas y de gestin. Esto, unido a la popularizacin de las microcomputadoras y computadoras personales, ha hecho que su utilizacin sea haya extendido enormemente, a la vez que ha propiciado el surgimiento de una gran diversidad de diversiones que extienden y se adaptan a necesidades particulares el lenguaje original. Existen multitud de intrpretes y compiladores del lenguaje. Los ocho principios de diseo de BASIC fueron: 1. Ser fcil de usar para los principiantes. 2. Ser un lenguaje de propsito general. 3. Permitir que los expertos aadieran caractersticas avanzadas, mientras que el lenguaje permaneca simple para los principiantes. 4. Ser interactivo. 5. Proveer mensajes de error claros y amigables. 6. Responder rpido a los programas pequeos. 7. No requerir un conocimiento del hardware de la computadora.

8. El lenguaje se baso en Fortran y Algol 6.0

Pascal
Fue creado por el matemtico suizo Nicklaus Wirth en 1970, basndose en el lenguaje ALGOL, en cuyo diseo haba participado en los aos sesenta. Su nombre proviene del filosofo y matemtico francs del siglo XVII, Blaise Pascal, que invento la primera maquina tipo mecnico para sumar. Fue el primer gran lenguaje creado despus de haber sido ampliamente diseminados los conceptos asociados con la programacin estructurada. El lenguaje de programacin en Pascal, es un lenguaje de alto nivel, y de propsito general, lo cual quiere decir que se puede utilizar para cualquier tipo de propsitos. El lenguaje de programacin en Pascal se considera un lenguaje estructurado, sencillo y practico para todos aquellos usuarios que se inician en el mundo de la programacin, ya que fue creado con fines de aprendizaje. Al ser un Pascal lenguaje estructurado, sirve de base para cualquier otro lenguaje de alto nivel, por estas caractersticas es utilizado en las universidades e institutos de educacin para inicializar a los futuros ingenieros en sistemas o informtica. El lenguaje de programacin Pascal, es idneo en el estudio y definicin de las estructuras de datos, su fcil definicin lo hace manejable para un programador novato. Con la programacin en Pascal, se pueden realizar desde programas formales, rutinas, utilitarios, hasta cualquier clase de video juegos. Programacin en Pascal es un lenguaje de sintaxis sencilla, muy estructurado y que comprueba exhaustivamente todo tipo de datos. El mejor de los propsitos de programacin en Pascal es que ensea buenas formas de programacin, con lo cual se utiliza mucho en la enseanza, por todos los motivos nominados anteriormente, por su sencillez, su estructuracin y su facilidad de lectura y entendimiento. Existen varios dialectos locales de programacin en Pascal, entre ellas el Turbo Pascal, el cual acepta instrucciones de Pascal.

Lenguaje De Programacin C
Bastante antiguo pero todava muy muy muy usado para programacin a bajo nivel (eso significa casi como hablarle a la PC en su idioma) Se usa para

desarrollar drivers, aplicaciones de DOS y casi en cualquier programa de Unix/Linux vas a tener que programar en C. Es tambin el favorito de las universidades para ensear a programar, junto con Pascal que es del estilo. C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolucin del anterior es decir el 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.1591989. 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. En la prctica, los programadores suelen usar elementos noporttiles dependientes del compilador o del sistema operativo.

C++
C++ es un lenguaje de programacin orientado a objetos que toma la base del lenguaje C y le agrega la capacidad de abstraer tipos como en Smalltalk. A finales de los 70's y principio de los 80's un nuevo modelo de de programacin fue desarrollado, la programacin orientada a objetos, la idea bsica es que los objetos son piezas de cdigo auto contenidas y reusables. Bjarne Stroustroup[10], tambin de los Laboratorios Bell, desarrollo un nuevo lenguaje basado en C que aplica los conceptos de la programacin orientada a objetos, inicialmente se llamo C con clases, para posteriormente tomar su nombre definitivo C++ cuando fue publicado en 1983. Las principales caractersticas del C++ son abstraccin, el soporte para programacin orientada a objetos y el soporte de plantillas o programacin genrica. Por lo cual , se puede decir que C++ es un lenguaje multi paradigma que abarca tres paradigmas de la programacin: La programacin estructurada, la programacin genrica y la programacin orientada a objetos.

Actualmente cuenta con un estndar ISO y es muy popular en la programacin de aplicaciones.

Perl
Perl (Practical Extraction and Report Language), fue desarrollado por Larry Wall[11], inicialmente motivado para cubrir las carencias de sed y awk y las limitaciones del Shell, su primer versin publica fue anunciada en el Newsgroup comp.sources.misc el 18 de diciembre de 1987. Actualmente Perl es un lenguaje de propsito general, usado para amplia gama de tareas que incluyen administracin de sistemas, desarrollo web, programacin en red, desarrollo GUI, si lo deseas, puedes programar orientado a objetos y mucho mas. Es uno de los lenguajes mas flexibles y poderosos, junto con Lisp, permite desarrollar prcticamente cualquier cosa con el, es poderoso, flexible y expresivo. Perl es libre y es divertido, permite ser creativo y no te ata a las restricciones impuestas por el diseador del lenguaje, en Perl siempre hay mas de una manera de hacer las cosas. Sin embargo, esta flexibilidad y poder no son apreciados por los programadores promedio que prefieren lenguajes mas simples y fciles de aprender, por lo cual Perl es el blanco de muchas criticas nacidas de la ignorancia. Perl es multiplataforma y desde hace muchos aos a demostrado en el mundo real producir cdigo completamente reusable sin necesitar programacin orientada a objetos.

Python
Es un lenguaje interpretado e interactivo, creado por Guido Van Rossum[12] en 1991. Es completamente tipeado dinmicamente, usa manejo automtico de memoria, por lo cual es similar a Lisp, Perl, Ruby, Scheme y Tcl. Es desarrollado como proyecto de software libre, manejado por la Python Software Foundation. Tomo varias de sus caractersticas de Lisp. Algunos lo consideran la "oposicin leal" a Perl, lenguaje con el cual mantiene una rivalidad amistosa. Los usuarios de Python consideran a ste mucho ms limpio y elegante para programar. Sin embargo esto es mas un punto de vista de sus usuarios que una realidad. Su facilidad de aprendizaje, su orientacin a programadores promedio, su limpieza de cdigo, hacen que sea uno de los lenguajes mas exitosos al momento de escribir el presente trabajo.

Ruby
Es un lenguaje de programacin interpretado, orientado a objetos, con una sintaxis inspirada por Perl y Ada, que tambin tomo ideas de Lisp, Python, Dylan y CLU. Fue creado por Yukihiro Matsumoto[13], quien comenz su desarrollo en 1993, y lo publico en 1995. El nombre Ruby fue elegido para reflejar su herencia de Perl. Entre sus caractersticas tenemos:

Lenguaje de guiones interpretado:


Posibilidad de realizar directamente llamadas al sistema operativo Potentes operaciones sobre cadenas de caracteres y expresiones regulares Retroalimentacin inmediata durante el proceso de desarrollo

Rpido y sencillo:

Son innecesarias las declaraciones de variables Las variables son de tipo dinmico. La sintaxis es simple y consistente La gestin de la memoria es automtica

Programacin orientada a objetos:


Todo es un objeto Clases, herencia, mtodos, ... Mtodos singleton Mixins por mdulos Iteradores y cierres

Tambin:

Enteros de precisin mltiple Modelo de procesamiento de excepciones Carga dinmica Hilos

Ansi Common Lisp

En abril de 1981, despus de una reunin patrocinada por DARPA, se unieron los esfuerzos de Symbolics, el proyecto SPICE, el proyecto NIL y el proyecto S-1 Lisp, para definir Common Lisp. Common Lisp fue diseado como una descripcin de una familia de dialectos de Lisp. Common Lisp recibi alimentacin de La Maquina Lisp, MacLisp, NIL, S-1 Lisp, Spice Lisp y Scheme. El libro Common Lisp: The language[14] es la descripcin de ese diseo. Su semntica fue dejada sin especificar en aquellas partes donde una fuerte especificacin pudiera ser un obstculo en el uso e investigacin de Lisp. En 1986 se formo un grupo de trabajo para producir un draft para un estndar ANSI de Common Lisp, entre las especificaciones que presento se encontraban estandarizaciones para portabilidad, facilidades de iteracin, manejo de grandes conjuntos de caracteres, un sistema de programacin orientada a objetos, entre otras, para una descripcin detallada ver[15] . El estndar ANSI Common Lisp fue publicado en 1994. Lisp se consolido como el lenguaje de programacin mas poderoso y flexible jamas inventado. Muchos de los lenguajes modernos han copiado la mayora de sus caractersticas[16], sin embrago no todas ya que entonces no podran decir que son un nuevo lenguaje sino simplemente otro dialecto de Lisp.

Java
Es un lenguaje de programacin para crear programas seguros, porttiles, orientados a objetos interactivos, para mejorar la entrega de informacin a travs de Internet, etc. El lenguaje de programacin Java, fue diseado por la compaa Sun Microsystems Inc, con el propsito de crear un lenguaje que pudiera funcionar en redes computacionales heterogneas ( redes de computadoras formadas por ms de un tipo de computadora, ya sean PC, MAC's, estaciones de trabajo, etc.),y que fuera independiente de la plataforma en la que se vaya a ejecutar. Esto significa que un programa de Java puede ejecutarse en cualquier mquina o plataforma. El lenguaje fue diseado con las siguientes caractersticas en mente:

Simple. Elimina la complejidad de los lenguajes como "C" y da paso al contexto de los lenguajes modernos orientados a objetos. Orientado a Objetos. La filosofa de programacin orientada a objetos es diferente a la programacin convencional. Familiar. Como la mayora de los programadores estn acostumbrados a programar en C o en C++, el sintaxis de Java es muy similar al de estos. Robusto. El sistema de Java maneja la memoria de la computadora por ti. No te tienes que preocupar por apuntadores, memoria que no se est

utilizando, etc. Java realiza todo esto sin necesidad de que uno se lo indique. Seguro. El sistema de Java tiene ciertas polticas que evitan se puedan codificar virus con este lenguaje. Existen muchas restricciones, especialmente para los applets, que limitan lo que se puede y no puede hacer con los recursos crticos de una computadora. Portable. Como el cdigo compilado de Java (conocido como byte code) es interpretado, un programa compilado de Java puede ser utilizado por cualquier computadora que tenga implementado el interprete de Java. Independiente a la arquitectura. Al compilar un programa en Java, el cdigo resultante un tipo de cdigo binario conocido como byte code. Este cdido es interpretado por diferentes computadoras de igual manera, solamente hay que implementar un intrprete para cada plataforma. De esa manera Java logra ser un lenguaje que no depende de una arquitectura computacional definida. Multithreaded. Un lenguaje que soporta mltiples threads es un lenguaje que puede ejecutar diferentes lneas de cdigo al mismo tiempo. Interpretado. Java corre en mquina virtual, por lo tanto es interpretado. Dinmico. Java no requiere que compiles todas las clases de un programa para que este funcione. Si realizas una modificacin a una clase Java se encarga de realizar un Dynamic Bynding o un Dynamic Loading para encontrar las clases.

Java puede funcionar como una aplicacin sola o como un "applet", que es un pequeo programa hecho en Java. Los applets de Java se pueden "pegar" a una pgina de Web (HTML), y con esto puedes tener un programa que cualquier persona que tenga un browser compatible podr usar. Nota:Diferencia entre Java y CGI La diferencia es esencialmente simple, un CGI se ejecuta en el servidor mientras que un programa en Java se ejecuta en la mquina del usuario. Java funciona de la siguiente manera: El compilador de Java deja el programa en un Pseudo-cdigo (no es cdigo maquinal) y luego el intrprete de Java ejecuta el programa (lo que se conoce como el "Java Virtual Machine"). Por eso Java es multiplataforma, existe un intrprete para cada mquina diferente. Nota: El cdigo maquinal es el cdigo binario que la computadora entiende y puede ejecutar. Para entender bien como funciona un applet de Java vean el siguiente ejemplo: 1. 2. Existe un cdigo de Java en un servidor de Web. (Los cdigos de Java se caracterizan por tener la extensin *.class). 3. Una persona en Internet, con un browser compatible con Java, realiza una coneccin al servidor. 4. El servidor enva el documento HTML y el cdigo en Java (*.class).

5. En la computadora del usuario remoto llegan ambos, y la Mquina Virtual de Java, que est en el browser, transforma el cdigo Java en un cdigo que entienda la mquina local y se ejecuta el programa dentro de la pgina de Web. 6. Si el usuario realiza otra conexin a otro URL o se sale del browser, el programa se deja de ejecutar y en la computadora no queda rastro de el.

Java Script
JAVASCRIPT es un lenguaje diseado especialmente para ejecutarlo en internet. Es un lenguaje de script basado en objetos, que se apoya en el modelo de prototipos. Es muy popular por su uso en sitios Web. Fue desarrollado por Brendan Eich[20], en su trabajo para Netscape, quien lo public en diciembre de 1995.

Su sintaxis es parecida a la de C, y al igual que C utiliza el concepto de palabras reservadas, tiene soporte para expresiones regulares y UTF. Cuando se usa en Web, se conecta a travs de su interfaz DOM (Document Object Model) a las aplicaciones tanto del lado del cliente como del servidor. Gracias a esto es usado para crear poderosas aplicaciones web dinmicas. Desafortunadamente los diferentes navegadores exponen diferentes objetos y mtodos por lo cual es necesario escribir versiones especificas de un programa en Javascript para los diferentes tipos de navegadores. Entre las principales tecnologas para interactuar con DOM que usan JavaScript esta AJAX y DHTML.

Php
Creado por Rasmus Lerdorf[21], en 1994, inicialmente eran una serie de scripts en Perl y posteriormente estos scripts fueron reescritos en C, que el usaba para algunas tareas Web. Inicialmente significaba Personal Home Page Tools, y fue publicado por primera vez el 8 de junio de 1995, actualmente su nombre oficial es: PHP Hypertext Preprocessor. Las caracteristicas mas destacadas de PHP son su facilidad de aprendizaje y que es software libre. Las anteriores caractersticas, sumadas a su amplio soporte a manejadores de bases de datos lo han convertido en uno de los lenguajes mas populares para programacin Web, los famosos desarrollos LAMP. Comparte caractersticas con otros lenguajes de programacin como C y perl y recientemente con Java. Ademas de ser usado en web, puede usarse desde la lnea de comandos y para Construir GUI's Con PHP-GTK.

C#
Es un lenguaje orientado a objetos desarrollado por Microsoft, tomando ideas de C++ y Java, como parte de su estrategia comercial .Net. Esta normalizado, por ECMA quien en el ao 2001 publico la ECMA-334 C# Language Specification; en el ao 2003 se convirtio en un estandar ISO (ISO/IEC 23270).

Adems de la implementacin de Microsoft existen implementaciones libres como Mono y dotGNU. Gracias a la maquinara comercial de Microsoft y la amplia base de escritorios Windows, el uso de C# es muy extendido en entornos corporativos y en el mundo Windows en general. Los proyectos libres de C#, no son muy populares entre la comunidad del software libre, por la desconfianza hacia Microsoft y sus patentes.

Pl/I
Fue creado a comienzos de los aos sesenta por IBM para ser usado en sus equipos del sistema 360. Inspirndose en los lenguajes ALGOL, COBOL y FORTRAN se desarrollo el PL/I (Programming Language/I) tomando las mejores caractersticas de los anteriores y aadiendo algunas nuevas, con el objetivo de obtener un lenguaje lo mas general posible en cuanto a su implementacin, til para aplicaciones tcnico-cientficas, comerciales, de proceso de textos, de bases de datos y de programacin de sistemas. Se trata de un lenguaje de programacin complejo. Compilado y estructurado, es capaz de gestionar errores y de procesar multitareas, y se emplea en entornos acadmicos y de investigacin. Entre sus novedades esta su gran libertad en el formato de escritura de los programas: soporta la programacin estructurada y diseo modular. Es un lenguaje flexible y sofisticado. No obstante, no ha superado a sus progenitores en sus aplicaciones especificas, debido en parte a su amplitud y, por ello, al tamao de su compilador que hasta ahora solo se poda instalar en grandes equipos. El elemento bsico de este programa es el enunciado que termina en punto y coma. Los enunciados se combinan en procedimientos. Un procedimiento puede representar por completo a un programa pequeo o un bloque de construccin o modulo de un programa ms complejo.

Modula-2
El lenguaje MODULA fue diseado en 1977 bajo la direccin de Nicklaus Wirth, creador tambin el lenguaje PASCAL, con la intencin de incluir las necesidades de la programacin de sistemas y dar respuestas a las criticas recibidas respecto de las carencias del lenguaje PASCAL. En 1979 se realiza una versin que pasa a denominarse MODULA-2 y que perdura en la actualidad. Adems de incluir las caractersticas de su predecesor, este nuevo lenguaje incorpora las principales carencias de aquel, como la posibilidad de compilacin separada, creacin de libreras, programacin concurrente, mejora el manejo de cadenas de caracteres, los procedimientos de entrada/salida y la gestin de la memoria, etc. adems, posee grandes facilidades para la programacin de sistemas.

Tambin, debido a sus cualidades didcticas, ha sido ampliamente aceptado por la comunidad universitaria como herramienta idnea para la enseanza de la programacin.

Ada
Es l ltimo intento de obtener un nico lenguaje para todo tipo de aplicaciones, e incluso los ltimos avances de tcnicas de programacin. Su diseo fue encargado por el Departamento de Defensa de Estados Unidos, para su uso en servicios militares, a la empresa Honeywell-Bull despus de una seleccin rigurosa entre varias propuestas realizadas sobre una serie de requerimientos del lenguaje y de haber evaluado negativamente veintitrs lenguajes existentes. De estos, se seleccionaron como base para la creacin del nuevo lenguaje el PASCAL, el ALGOL y el PL/I. La estandarizacin del lenguaje se publico en 1983 con el nombre de ADA, en honor de la considerada primera programadora de la historia, Augusta Ada Byron, condesa de Lovelace. Entre las caractersticas del lenguaje se encuentran la compilacin separada, los tipos abstractos de datos, programacin concurrente, programacin estructurada, libertad de formatos de escritura, etc. Como principal inconveniente presenta su gran extensin. Los escritores lo llamaron inflexible e ineficiente, en tanto que sus favorecedores lo consideraban un gran avance en la tecnologa del software.

Logo
En informtica, lenguaje de programacin de ordenadores o computadoras, desarrollado en 1968 por Seymour Papert en el MIT, que se usa frecuentemente en la enseanza de lenguaje de programacin a nios. Una caracterstica importante de Logo son los grficos de tortuga, que permiten al programador hacer dibujos simples dirigiendo los movimientos de la tortuga en la pantalla hacia adelante, hacia la derecha o la izquierda. Una vez que dominan el entorno sencillo del dibujo, el programador (normalmente un nio o una nia) empieza a descubrir las caractersticas ms sofisticadas del lenguaje, que estn basadas fundamentalmente en el lenguaje de programacin LISP. Logo est considerado como un lenguaje para la formacin, a pesar de que algunas empresas intentaron que tuviera una mayor aceptacin en los crculos profesionales de programacin.

RPG
Report Program Operator fue introducido en 1960 como un lenguaje para duplicar rpidamente el enfoque de proceso utilizado con un equipo de tarjeta perforada. Este lenguaje fue desarrollado por IBM en 1964. Su uso esta aun limitado sobre todo para las aplicaciones de negocios que son procesadas en pequeas computadoras, generar informes comerciales o de negocios. Como su nombre lo

sugiere, el RPG esta diseado para generar los reportes de salida que resultan del proceso de aplicaciones de negocios. A pesar de las aplicaciones de actualizacin de archivos, el RPG es un lenguaje de propsito limitado porque los programas objeto generados por el compilador de RPG siguen sin desviacin, un ciclo de procesamiento bsico. Una ventaja del RPG es la relativa facilidad para aprenderlo y usarlo. Dado que la lgica de la programacin es fija, existen menos reglas formales que en otros lenguajes.

APL
Sus siglas significan (A Programming Language). Un Lenguaje de Programacin. Este programa fue desarrollado por Kenneth Inverson en el ao 1961 para resolver problemas matemticos. Este lenguaje se caracteriza por su brevedad y por su capacidad de generacin de matrices y se utiliza en el Desarrollo De Modelos Matemticos.

Pilot
Programmend Inquiry Language Or Teaching (Consulta, lenguaje o aprendizaje de investigacin programada) creado en 1969. Este lenguaje de programacin es utilizado fundamentalmente para crear aplicaciones destinadas a instrucciones asistidas por computadoras. Se caracteriza por utilizar un mnimo de sintaxis.

Smalltalk
SMALLTALK, Lenguaje de Programacin orientado a objetos integrados con un entorno de desarrollo multiventana. SMALLTALK no es solo un hermoso lenguaje de computacin orientado a objetos. El entorno de desarrollo merece similar valoracin y ha sido copiado muchas veces, desde el Sistema Operativo de Apple MS Windows y Borland Pascal (en una memoria extensin). Muchos conceptos de SMALLTALK como los browsers y las tcnicas de browsing han encontrado hoy su rumbo en muchas herramientas de desarrollo de la generacin X, desarrollado por SMALLTALK poseen un factor divertido-de-usar. Los cambios se graban instantneamente y los mismos pueden probarse rpidamente. SMALLTALK fue desarrollado dentro del Grupo de Investigacin del Aprendizaje en el Centro de Investigacin de Xerox en palo Alto a comienzos de los 70. Las principales ideas de SMALLTALK se le atribuyen generalmente a Alan kay con races en Simula, LISP y SketchPad. Dan Ingalls escribi el cdigo de las primeras ventanas solapables, los pop-up mens y la clase BitBlt. Adele Goldberg y Dave Robson escribieron los manuales de referencia para SMALLTALK y fueron

miembros clave del equipo de desarrollo. Un programa de licenciamiento de Xerox y Xerox Special Information Systems. Sin embargo la distribucin generalizada a la comunidad de desarrollo no sucedi hasta la fundacin de una nueva compaa llamada ParcPlace Systems Inc. , Dirigida por Adele Goldberg. Un segundo SMALLTALK (SMALLTALK 4) fue desarrollado por Digitalk en los Angeles California. Este SMALLTALK estaba dirigido a cubrir la necesidad de un producto pequeo, de alta velocidad, basado en PC. Object Technology International Inc. (OTI) desarroll un conjunto de herramientas para proveer el control de inversiones y el manejo de configuraciones en grandes proyectos. IBM desarroll la familia de productos VisualAge para SMALLTALK en colaboracin con Object Technology (antiguamente ParcPlase-Digitalk) e IBM permanecen como los distribuidores dominantes de entornos de desarrollos en SMALLTALK. Algunos nuevos SMALLTALK se hallan en etapa de desarrollo.

Forth
Lenguaje de cuarta generacin, creado en 1970, es un lenguaje estructurado e interpretado de fcil ampliacin y ofrece una alta funcionalidad en un espacio reducido. Es un lenguaje de alto nivel del cual derivan en la actualidad casi todos los lenguajes empleados en los robots.

Delphi
Es un entorno de programacin visual orientado a objetos para desarrollo rpido de aplicaciones (RAD) de propsito general, incluyendo aplicaciones cliente/servidor. Delphi es la versin de Delphi para 32 bits (delphi 3), es decir son casi los mismos, con la nica diferencia que Delphi 3 es mucho ms mejorado, por ejemplo contiene un TeeChart, que sirve para los grficos de negocio. Delphi tiene las siguiente caractersticas:

Rendimiento - con el mejor y ms rpido compilador del mundo. Empresa e Internet - soluciones cliente y servicio Desarrollo de aplicaciones rpidas (RAD). Reusabilidad de componentes, un verdadero entorno orientado a objetos. Manejo de Base de Datos escalables. Arquitectura multinivel abierta y dimensionable.

Diseminacin de informacin de base de datos en la Web a una gran velocidad.

HTML
El lenguaje HTML, sirve para realizar esas atractivas pginas Web. Se trata de un sistema de marcas que permite enlazar al mismo tiempo texto, sonidos y grficos dentro del mismo documento, con otros dentro del servidor o incluso con otros servidores WWW. Es decir, es un editor para combinar textos, imgenes e incluso sonido y ahora tambin imgenes en movimiento. Es, en definitiva, la forma de manejar y presentar la informacin en la red. Para escribir documentos de hipertexto se ha desarrollado un nuevo formato de datos o lenguaje llamado Hyper Text Markup Language (HTML). Este lenguaje permite dar indicaciones precisas al programa cliente de cmo debe presentarse el documento en pantalla o al ser impreso. El lenguaje HTML es el usado actualmente para escribir textos Hypermediales en el web. Tres normas fundamentales: 1.- HTML simplemente texto Lo primero es saber que un documento HTML es un archivo de texto simple, luego, se puede editar con cualquier editor de textos. 2.- No importan los Tabs ni los saltos de lnea Los interpretes HTML no toman en cuenta las tabulaciones, los saltos de lneas ni los espacios en blanco extra. Esto tiene ventajas o desventajas. La principal ventaja es que permite obtener resultados uniformes y de buena presentacin de manera bastante fcil. La principal desventaja es que un documento HTML, por lo menos se debe usar los comandos <P>... </P> o <BR> para evitar que quede todo el texto en una sola lnea. 3.- Existen 3 caracteres especiales:

< menor que, se usa para indicar el comienzo de un comando HTML >mayor que, se usa para indicar el trmino de un comando HTML. & Ampersand, se usa para escribir caracteres especiales (smbolos matemticos, comerciales, as como el signo menor que y el mayor que entre otros) en un documento.

Lo primero es conocer los comandos que debe contener todo documento HTML de ms de una lnea de largo: EL COMANDO PRRAFO: El comando <P>... </P> se utiliza como un delimitador de prrafo en HTML. Inserta automticamente un quiebre de lnea al final del prrafo, y produce un espaciamiento conveniente entre los diferentes prrafos de un documento. Tambin en forma adicional permite alinear el texto al centro, a la izquierda o a la derecha. EL COMANDO QUIEBRE DE LNEAS: El comando < BR> permite hacer un quiebre (salto)de lnea. LOS COMANDOS DE ENCABEZADO: Los textos en HTML poseen seis niveles de encabezado. Por ejemplo el nivel 1 se usa para las divisiones mayores de texto, el nivel de encabezado 6 se usa para las divisiones ms chicas de texto. ESTRUCTURA DE HYPERTEXTO: Existen dos partes fundamentales de un documento HTML. ENCABEZADO: Se inicia mediante el comando<HEAD> y se termina con </HEAD>. Por lo general se incluyen aqu el ttulo del documento, mediante el comando <TITLE>... </TITLE>. CUERPO: Se inicia mediante el comando <BODY> y se termina con el comando. Dentro del cuerpo del documento se incluyen cualquier carcter imprimible. Adems es importante incluir el comando<ADDRESS>... </ADDRESS> al final del cuerpo pero dentro de l. Dentro del ADDRESS se escribe el nombre del autor del documento, la organizacin a la que pertenece, su direccin del correo electrnico y otra informacin que se considere relevante.

Hypertalk
"HyperTalk" es el lenguaje desarrollado por Dan Winkler para Bill Atkinson, el creador del "HyperCard" para Apple-Macintosh. Est orientado a la creacin de aplicaciones conforme al sistema de "hiperarchivos" (sistemas de fichas interrelacionadas donde se facilita el "navegar" de un archivo a otro).

HyperTalk es un buen ejemplo de lenguaje orientado a objetos. Este tipo de lenguaje combina la lgica declarativa con los algoritmos (Vea "PROLOG"). Un programa ya no es una secuencia de instrucciones sino un conjunto de objetos agrupados en conjuntos, definidos mediante atributos y a los cuales pueden asociarse instrucciones. As, en HyperCard, existen archivos ("stacks" o "pilas") que agrupan fichas ("cards"), y cada una de stas contiene campos de datos y botones. Todos son "objetos" que -si bien mantienen entre s una relacin jerrquica- tienen asociados paquetes de instrucciones ("scripts") independientes unos de otros. Cada objeto pertenece a un conjunto (como fichas o botones) que tiene "atributos" propios comunes a todos sus miembros, y cada atributo tendr un valor comn o especfico para cada caso. Para dar o buscar dicho valor intervienen "facetas" que son instrucciones (procedimientos) asociadas.

SQL
Lenguaje desarrollado especialmente para facilitar la consulta de bases de datos (BD), acotando progresivamente la bsqueda (de ah el nombre de "Sequential Query Language"). Existen hoy numerosas aplicaciones de administracin de bases de datos que recurren al SQL (Las ms conocidas, potentes - y caras - son Oracle e Informix). Hoy se pueden acoplar las bases de datos a hipertextos (pginas web), para lo cual las buenas aplicaciones ya traen mdulos que hacen la conexin. El lenguaje PHP del cual hablamos ms arriba tambin sirve para definir procedimientos de insercin y de consulta de datos en BD que funcionan con SQL.

ASP
Su nombre es Active Server Pages. Es un lenguaje independiente, diseado por Microsoft para la codificacin eficiente de los scripts de los servidores, que fueron diseados para ser ejecutados por un servidor Web en respuesta a la peticin de un URL de un usuario. Los scripts de ASP son similares a otros scripts de servidores con los que puedes estar familiarizado, que son utilizados en otras plataformas, como Perl, Python, etc.

Lenguajes De Medio Nivel


Se trata de un termino no aceptado por todos, pero q seguramente habrs odo. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podra situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas caractersticas de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.

Generaciones
La evolucin de los lenguajes de programacin se puede dividir en 5 etapas o generaciones.

Primera generacin: lenguaje maquina. Segunda generacin: se crearon los primeros lenguajes ensambladores. Tercera generacin: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol Cuarta generacin. Son los lenguajes capaces de generar cdigo por si solos, son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aqu tambin se encuentran los lenguajes orientados a objetos, haciendo posible la reutilizacin d partes del cdigo para otros programas. Ej. Visual, Natural Adabes Quinta generacin: aqu se encuentran los lenguajes orientados a la inteligencia artificial. Estos lenguajes todava estn poco desarrollados. Ej. LISP

Compiladores
Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (cdigo fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras (cdigo objeto). Bsicamente, existen dos grandes formas de ejecutar programas: programas compilados (previamente pasados por un compilador) y programas interpretados (necesitan pasar por un intrprete para ejecutarse en tiempo real).

Caractersticas de un compilador Generalmente un compilador se divide en dos partes:

* Front End: parte que analiza el cdigo fuente, comprueba su validez, genera el rbol de derivacin y rellena los valores de la tabla de smbolos. Parte que suele ser independiente de la plataforma o sistema operativo para el que funcionar. * Back End: parte en donde se genera el cdigo mquina exclusivo para una plataforma a partir de lo analizado en el front end. Por lo general el resultado del back end no puede ser ejecutado directamente, se necesita pasar por un proceso de enlazado (linker). Existen varios tipos de compiladores:

Una sola pasada: examina el cdigo fuente una vez, generando el cdigo o programa objeto. Pasadas mltiples: requieren pasos intermedios para producir un cdigo en otro lenguaje, y una pasada final para producir y optimizar el cdigo producido durante los pasos anteriores. Optimacin: lee un cdigo fuente, lo analiza y descubre errores potenciales sin ejecutar el programa. Compiladores incrementales: generan un cdigo objeto instruccin por instruccin (en vez de hacerlo para todo el programa) cuando el usuario teclea cada orden individual. El otro tipo de compiladores requiere que todos los enunciados o instrucciones se compilen conjuntamente. Ensamblador: el lenguaje fuente es lenguaje ensamblador y posee una estructura sencilla. Compilador cruzado: se genera cdigo en lenguaje objeto para una mquina diferente de la que se est utilizando para compilar. Es perfectamente normal construir un compilador de Pascal que genere cdigo para MS-DOS y que el compilador funcione en Linux y se haya escrito en C++. Compilador con montador: compilador que compila distintos mdulos de forma independiente y despus es capaz de enlazarlos. Autocompilador: compilador que est escrito en el mismo lenguaje que va a compilar. Evidentemente, no se puede ejecutar la primera vez. Sirve para hacer ampliaciones al lenguaje, mejorar el cdigo generado, etc. Metacompilador: es sinnimo de compilador de compiladores y se refiere a un programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje. El desarrollo de los metacompiladores se encuentra con la dificultad de unir la generacin de cdigo con la parte de

anlisis. Lo que s se han desarrollado son generadores de analizadores lxicos y sintcticos. Por ejemplo, los conocidos: generador de analizadores lxicos LEX: generador de analizadores sintcticos YACC: desarrollados para UNIX. Los inconvenientes que tienen son que los analizadores que generan no son muy eficientes. Descompilador: es un programa que acepta como entrada cdigo mquina y lo traduce a un lenguaje de alto nivel, realizando el proceso inverso a la compilacin.

Fases Del Proceso De Compilacin


Estructura de un Compilador. Cualquier compilador debe realizar dos tareas principales: anlisis del programa a compilar y sntesis de un programa en lenguaje maquina que, cuando se ejecute, realizara correctamente las actividades descritas en el programa fuente. Para el estudio de un compilador, es necesario dividir su trabajo en fases. Cada fase representa una transformacin al cdigo fuente para obtener el cdigo objeto. La siguiente figura representa los componentes en que se divide un compilador. Las tres primeras fases realizan la tarea de anlisis, y las dems la sntesis. En cada una de las fases se utiliza un administrador de la tabla de smbolos y un manejador de errores. Anlisis Lxico En la fase de anlisis lxico se leen los caracteres del programa fuente y se agrupan en cadenas que representan los componentes lxicos. Cada componente lxico es una secuencia lgicamente coherente de caracteres relativa a un identificador, una palabra reservada, un operador o un carcter de puntuacin. A la secuencia de caracteres que representa un componente lxico se le llama lexema (o con su nombre en ingls token). En el caso de los identificadores creados por el programador no solo se genera un componente lxico, sino que se genera otro lexema en la tabla de smbolos.

Anlisis Sintctico En esta fase, los componentes lxicos se agrupan en frases gramaticales que el compilador utiliza para sintetizar la salida. Anlisis Semntico

La fase de anlisis semntico se intenta detectar instrucciones que tengan la estructura sintctica correcta, pero que no tengan significado para la operacin implicada. Generacin de cdigo Intermedio Algunos compiladores generan una representacin intermedia explcita del programa fuente, una vez que se han realizado las fases de anlisis. Se puede considerar esta operacin intermedia como un subprograma para una mquina abstracta. Esta representacin intermedia debe tener dos propiedades importantes: debe ser fcil de producir y fcil de traducir al programa objeto. Optimizacin de Cdigo En esta fase se trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de mquina ms rpido de ejecutar. Generacin de Cdigo Esta constituye la fase final de un compilador. En ella se genera el cdigo objeto que por lo general consiste en cdigo en lenguaje mquina (cdigo relocalizable) o cdigo en lenguaje ensamblador. Administrador de la tabla de smbolos Una tabla de smbolos es una estructura de datos que contiene un registro por cada identificador. El registro incluye los campos para los atributos del identificador. El administrador de la tabla de smbolos se encarga de manejar los accesos a la tabla de smbolos, en cada una de las etapas de compilacin de un programa. Manejador de errores En cada fase del proceso de compilacin es posibles encontrar errores. Es conveniente que el tratamiento de los errores se haga de manera centralizada a travs de un manejador de errores. De esta forma podrn controlarse ms eficientemente los errores encontrados en cada una de las fases de la compilacin de un programa. Intrpretes vs compiladores Cualquier lenguaje puede ser ejecutado tanto va intrprete o va compilador, pero algunos lenguajes suelen asociarse ms a una va que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados" respectivamente. Tambin puede darse que un programa contenga partes que son implementadas

va

intrprete

otras

va

compilador.

Tambin existen intrpretes que incluyen cierta "compilacin" en el medio. Son aquellos que compilan a un cdigo intermedio llamado bytecode, que es ms eficiente de ejecutar que hacerlo directamente desde el cdigo fuente. En general, la principal desventaja de los intrpretes, es que cuando un programa es interpretado, suele ejecutarse ms lento que si el mismo programa estuviese compilado. Esto se debe a que el intrprete debe analizar cada sentencia en el programa en cada ejecucin (un anlisis en tiempo real). Tambin el acceso a variables es ms lento en un intrprete, porque mapear los identificadores para almacenar las localizaciones debe hacerse repetidas veces en tiempo real.

Proceso de compilacin en C
La compilacin de un programa C se realiza en varias fases que normalmente son automatizadas y ocultadas por los entornos de desarrollo: 1.- Preprocesado: consistente en modificar el cdigo fuente en C segn una serie de instrucciones (denominadas directivas de preprocesado) simplificando de esta forma el trabajo del compilador. Las directivas de preprocesado van precedidas por el smbolo # a) #include <stdio.h> sustituir esta lnea por el contenido del archivo stdio.h b) #define c1 50 sustituir todas las apariciones de c1 por 50 en cada aparicin en el programa. c) Compilacin condicional con las directivas #ifdef, #ifndef, #else, #elif y #endif d) Eliminacin de comentarios,..... 2.- Compilacin que genera el cdigo objeto a partir del cdigo ya preprocesado. Genera un archivo de cdigo objeto por cada archivo de cdigo fuente. Programa1.c -> Programa.obj 3.- Enlazado que une los cdigos objeto de los distintos mdulos y bibliotecas externas (Como las bibliotecas del sistema) para generar el programa ejecutable final.

2.- DLL: Dynamic Link Library = Biblioteca de Enlace Dinmico Son archivos con cdigo ejecutable que son invocados por otros programas. En vez de incluir ese cdigo ejecutable en el programa .exe que lo usa, se ha dejado en otro archivo .dll Ventajas: Reducen el tamao de los archivos ejecutables: Gran parte del cdigo puede estar almacenado en bibliotecas y no en el propio ejecutable lo que redunda en una mejor modularizacin. Pueden estar compartidas entre varias aplicaciones: Si el cdigo es suficientemente genrico, puede resultar de utilidad para mltiples aplicaciones (por ejemplo, la MFC es una biblioteca dinmica con clases genricas que recubren la API grfica de Windows y que usan gran parte de las aplicaciones). Facilitan la gestin y aprovechamiento de la memoria del sistema: La carga dinmica permite al sistema operativo aplicar algoritmos que mejoren el rendimiento del sistema cuando se carguen estas bibliotecas. Adems, al estar compartidas, basta con mantener una copia en memoria para todos los programas que la utilicen. Brindan mayor flexibilidad frente a cambios: Es posible mejorar el rendimiento o solucionar pequeos errores distribuyendo nicamente una nueva versin de la biblioteca dinmica. Nuevamente, est correccin o mejora ser aprovechada por todas las aplicaciones que compartan la biblioteca. Inconvenientes Que la instalacin de un programa reemplace una DLL con una nueva versin incompatible Que la desinstalacin del programa borre una DLL compartida.

CONCLUSION
De acuerdo con este trabajo pudimos profundizar sobre el lenguaje que utilizan las maquinas para entender el lenguaje que le introduce el programador. Tambin pudimos aprender como se han ido desarrollando los lenguaje de programacin y la gran variedad de lenguajes que existen y como han sido de gran importancia para nuestra globalizacin y para la facilidad que manejamos al aprovechar los resultados de estos lenguajes con los cuales se hacen posible acceder a muchos sitios en nuestro pc de los que nos beneficiamos para nuestro bien comn y para los distintos campos en los que estamos rodeados o a los que pertenecemos.

BIBLIOGRAFIA http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_C http://www.lenguajes-de-programacion.com/programacion-enpascal.shtml http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B %2B/Introducci%C3%B3n http://www.monografias.com/trabajos/lengprog/lengprog.shtml http://www.antronio.com/f71/definiciones-utiles-y-tipos-de-lenguajesde-programacion-16912/ http://www.desarrolloweb.com/articulos/2358.php http://html.rincondelvago.com/lenguajes-de-programacion_historia-yevolucion.html http://es.kioskea.net/contents/base/binaire.php3 http://platea.pntic.mec.es/~lgonzale/tic/binarios/numeracion.html http://erick.cibercalli.com/showpost?postid=17 http://www.monografias.com/trabajos38/tipos-lenguajesprogramacion/tipos-lenguajes-programacion.shtml http://www.monografias.com/trabajos38/tipos-lenguajesprogramacion/tipos-lenguajes-programacion2.shtml http://www.monografias.com/trabajos11/compil/compil.shtml http://babotejada.wordpress.com/2007/09/20/fases-de-un-compilador2/ http://www.alegsa.com.ar/Dic/compilador.php

También podría gustarte