You are on page 1of 7

Introduccin a la informtica Tema1: Introduccin a la informtica Lenguajes de programacin ................................................. 1 Programacin de ordenadores ............................................. 1 Cdigo Fuente ...........................................................

1 Lenguaje de programacin ................................................ 1 Paradigmas de la programacin ........................................... 4 Cronologa de los lenguajes de programacin ............................. 5 Traductores ............................................................... 6 Esquema de un traductor ................................................. 6 Compiladores ............................................................ 7 Interpretes ............................................................. 7

Objetivos 1. 2. 3. 4. Conocer los trminos tcnicos de los lenguajes de programacin Explicar los diferentes tipos de lenguaje Conocer los paradigmas de la programacin de ordenadores Diferenciar entre compiladores y traductores

Lenguajes de programacin Programacin de ordenadores La programacin de ordenadores es el proceso iterativo de escribir o editar cdigo fuente. Dicha edicin de cdigo fuente implica probar, analizar, perfeccionar, y coordinar con otros programadores, en el caso de un programa desarrollado en conjunto. Una persona que practica esta tcnica se la conoce como programador de computadoras, desarrollador de software, o codificador. Cdigo Fuente Se le da el nombre de cdigo fuente a los programas escritos en un determinado lenguaje de programacin y que est compuesto por instrucciones escritas por un programador. El cdigo fuente no constituye software propiamente dicho pero es una instancia mediante la cual se logra el software. Lenguaje de programacin

Docente: Lic. David I. Lpez Prez

Pgina 1

Introduccin a la informtica Un lenguaje de programacin es un lenguaje formal diseado para expresar procesos que pueden ser llevados 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. Tipos de lenguajes de programacin 1. Lenguajes desarrollados para el clculo numrico. Tales como FORTRAN, Mathematica y Matlab. 2. Lenguajes para sistemas. Como C, C++ y ensamblador. 3. Lenguajes para aplicaciones de Inteligencia Artificial. Tales como Prolog y Lisp. Tambin se pueden clasificar de acuerdo con el tipo de instrucciones de que constan. En esta clasificacin se tiene al lenguaje mquina, al lenguaje ensamblador y al lenguaje de alto nivel. Lenguaje de Maquina: Este conjunto de instrucciones codificadas en binario comprensibles por la unidad de control se conoce con el nombre de lenguaje mquina; se trata del lenguaje de programacin ms bsico que existe y es el nico que entiende un ordenador. Resulta extraordinariamente mquina. tedioso programar directamente en cdigo

En los primeros tiempos del desarrollo de los ordenadores era necesario programarlos directamente de esta forma, sin embargo, eran mquinas extraordinariamente limitadas, con muy pocas instrucciones por lo que an era posible; en la actualidad esto es completamente irrealizable por lo que es necesario utilizar lenguajes ms fcilmente comprensibles para los humanos que deben ser traducidos a cdigo mquina para su ejecucin. Ejemplo: 0100100001000010011 Lenguaje Ensamblador Los lenguajes ensambladores son en esencia una versin simblica de los lenguajes mquina; por cada instruccin de la mquina o cada elemento capaz de almacenar datos se crea un smbolo que puede utilizar el programador; as, las instrucciones anteriores se escribiran como: Ejemplos: add.i c a b sub.f c a b

Aunque an es bastante crptico resulta ms sencillo programar en un lenguaje de este tipo que en cdigo mquina. Los ensambladores fueron Docente: Lic. David I. Lpez Prez Pgina 2

Introduccin a la informtica desarrollados de forma muy temprana y recibieron este nombre porque las instrucciones bsicas del lenguaje ensamblador eran en realidad pequeos programas escritos directamente en cdigo mquina; as cuando un programador deba escribir un nuevo programa con ese lenguaje en realidad estaba ensamblando cdigo mquina reutilizable. Una caracterstica tanto de los lenguajes ensambladores como del cdigo mquina es que son totalmente dependientes del ordenador: un programa en cdigo mquina (o en ensamblador) slo funciona en un tipo de ordenador y no en otro; la ventaja es que al estar perfectamente adaptados a una mquina concreta son programas muy rpidos que permiten que el programador aproveche todas y cada una de las caractersticas del ordenado Lenguaje de alto nivel Este tipo de lenguajes proporcionan caractersticas ms avanzadas que los lenguajes ensambladores como estructuras de control, estructuras de datos, etc. Los lenguajes de alto nivel son independientes de la mquina y, por tanto, portables; es decir, un algoritmo escrito en un lenguaje de programacin de alto nivel puede utilizarse en ordenadores diferentes. Esto es posible porque los lenguajes de alto nivel son traducidos a lenguaje mquina por un tipo de programa especial denominado compilador, un compilador toma como entrada un algoritmo escrito en un lenguaje de alto nivel y lo convierte a instrucciones inteligibles por el ordenador; los compiladores deben estar adaptados a cada tipo de ordenador pues deben generar cdigo mquina especfico para el mismo. Las anteriores instrucciones podran representarse en un lenguaje de alto nivel (como FORTRAN) de la forma siguiente: Ejemplos: c = a + b c = a b

FORTRAN, Pascal, C, C++ o Java son ejemplos de lenguajes de alto nivel; todos ellos comparten muchas similitudes entre s por lo que una vez aprendido un lenguaje de programacin de alto nivel es bastante sencillo aprender otros nuevos. Metfora sobre los lenguajes de programacin
Lenguaje de maquina Lenguaje Ensamblador Lenguaje de alto Nivel

0101110011000110 Nov Ax, Sub, Ado, Go to, Load, Mov, Store For, Next, While, Int A, B, C, (), If (x>=10) then, DO while

Perspectivas Histricas

Docente: Lic. David I. Lpez Prez

Pgina 3

Introduccin a la informtica

Aos 40 - 50

Aos 50 - 60

Aos 60+

Paradigmas de la programacin Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que nicamente trata de resolver uno o varios problemas claramente delimitados. Tipos de paradigmas 1. Funcional: Este tipo de paradigma demuestra un tipo de programacin en forma de funciones matemticas. Los lenguajes puramente funcionales evitan efectos secundarios que pueden ser comunes en otros tipos de paradigmas. El objetivo 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, y evitando el concepto de estado del cmputo. La secuencia de computaciones llevadas a cabo por el programa se regira nica y exclusivamente por la reescritura de definiciones ms amplias a otras cada vez ms concretas y definidas, usando lo que se denominan "definiciones dirigidas". Ejemplo: Microsoft.NET 2. Paradigma lgico: Se definen reglas lgicas que luego a travs de un motor de inferencias lgicas, resolver problemas planteados por el sistema. Algunos programas que utilizan el paradigma lgico: prolog. Hay muchos ms paradigmas de programacin y cada uno de ellos posee sus ventajas y desventajas, sin embargo sea el paradigma que elijamos podremos resolver todos los problemas por caminos diferentes a los dems. 3. Paradigma orientado a Objetos: Este tipo de programacin posee como idea principal encapsular estado y operaciones en objetos. Estos objetos pueden comunicarse entre s, poseen clases y herencia. Se puede destacar como ventaja la facilidad de reutilizacin de cdigo. Algn ejemplo de algunos lenguajes orientados a objetos pueden ser: Simula, Smalltalk, C++, Java, Visual Basic .NET, etc. 4. Paradigma Estructurado: Bsicamente el cdigo se divide en bloques, estructuras, que pueden o no comunicarse entre s. Este software se controla con secuencia, seleccin e interaccin. Otorga una mejor Docente: Lic. David I. Lpez Prez Pgina 4

Introduccin a la informtica comprensin del cdigo y permite su reutilizacin fcil. Ejemplos: ALGOL, Pascal, PL/I y Ada de una forma ms

5. Paradigma de programacin guiada por eventos: Es un paradigma de programacin en el que tanto la estructura como la ejecucin de los programas van determinados por los sucesos que ocurran en el sistema o que ellos mismos provoquen. Mientras que en la programacin secuencial es el programador el que define cul va a ser el flujo del programa, en la programacin dirigida por eventos ser el propio usuario, o lo que sea que est accionando el programa, el que dirija el flujo del programa. Al comenzar la ejecucin del programa se llevarn a cabo las inicializaciones correspondiente y a continuacin el programa quedar bloqueado hasta que se produzca algn evento. Cuando alguno de estos eventos tenga lugar, el programa pasar a ejecutar el cdigo del correspondiente manejador de evento. Ejemplo: Visual Basic Cronologa de los lenguajes de programacin

1957
FORTRAN

1958
ALGOL

1960
LISP

1960
COBOL

1962
APL SIMULA

1964
BASIC

1970
PROLOG

1972
C

1975
PASCAL MODULA

1983
Smalltalk ADA

1986
C++

1987
PERL

1991
Python

1993
Ruby

1995
Java PHP

2000
C#

Descripcin de lenguajes de programacin FORTRAN: 1957 FORmula TRANslating sistema traductor de frmulas matemticas. Fue desarrollado por un equipo, al frente del cual se encontraba John Backus quien despus vendra a contribuir en el desarrollo del compilador para el lenguaje ALGOL y de la notacin usada para la especificacin sintctica de los lenguajes. BASIC : 1964 BASIC es la abreviacin de Beginners All-purpose Symbolic Instruction Code. Basic fue desarrollado en la Universidad de Dartmouth en 1964 bajo la direccin de J. Kemeny y T. Kurtz. Surgi como un idioma simple de aprender y fcil de traducir. En los 70s, cuando se cre la computadora personal Altair, Bill Gates y Paul Allen implementaron su propia versin de Basic en dicha computadora. Con ello comenz el futuro de BASIC y de la PC. En ese tiempo, Gates era estudiante de Harvard y Allen era un empleado de Honeywell. La versin BASIC de Gates ocupaba un total de 4KB de memoria incluyendo el Docente: Lic. David I. Lpez Prez Pgina 5

Introduccin a la informtica cdigo y los datos que se usaron para el cdigo fuente. Luego Gates implement BASIC en otras plataformas (Apple, Comodor y Atari) y fue a partir de entonces que la corporacin de Microsoft empez su reinado en el mundo de las PC. Ms tarde en los 70s, surgi el sistema operativo MS-DOS de Bill Gates que inclua un intrprete de BASIC. La versin distribuida con MS-DOS era GW-BASIC y poda ser ejecutada en cualquier mquina que pudiera ejecutar DOS C: 1972 El lenguaje C rene caractersticas de programacin tanto de los lenguajes ensambladores como de los lenguajes de alto nivel; este lenguaje posee gran podero basado en sus operaciones a nivel de bits (propias de ensambladores) y la mayora de los elementos de la programacin estructurada de los lenguajes de alto nivel. Por ello es que C ha sido el lenguaje preferido para el desarrollo de software de sistemas y aplicaciones profesionales de la programacin de computadoras. En 1970 Ken Thompson de los laboratorios Bell cre la primera versin del lenguaje, la cual poda ejecutarse en el sistema operativo UNIX; a este lenguaje se le llam lenguaje B y tena la desventaja de ser lento. En 1971 Dennis Ritchie, con base en el lenguaje B, desarroll NB que luego cambi su nombre por C. Su diseo incluy una sintaxis simplificada, la aritmtica de direcciones de memoria (permite al programador manipular bits, bytes y direcciones de memoria) y el concepto de apuntador. Adems, al ser diseado para mejorar software de sistemas, se busc que generase cdigos eficientes y uno portabilidad total, es decir el que pudiese correr en cualquier mquina. Logrados los objetivos anteriores, C se convirti en el lenguaje preferido de los programadores profesionales. C++: 1983 En 1980 Bjarne Stroustrup, tambin de los laboratorios Bell, adicion al lenguaje C las caractersticas de la programacin orientada a objetos (incluyendo la ventaja de una biblioteca de funciones orientada a objetos) y lo denomin C con clases. Para 1986 dicha denominacin cambi a la de C++. Traductores Un traductor es un programa que traduce o convierte desde un texto o programa escrito en un lenguaje fuente hasta un texto o programa escrito en un lenguaje destino produciendo, si cabe, mensajes de error. Los traductores engloban tanto al compilador como al intrprete. Esquema de un traductor

Docente: Lic. David I. Lpez Prez

Pgina 6

Introduccin a la informtica Programa Fuente escrito en lenguaje fuente Programa Destino escrito en lenguaje destino

TRADUCTORES

Mensajes de error

Compiladores Un compilador es un programa que lee un programa escrito en lenguaje fuente, y lo traduce a un lenguaje objeto de bajo nivel. Adems generar una lista de los posibles errores que tenga el programa fuente. Ejemplos: C, C++ Interpretes Es como un compilador, solo que la salida es una ejecucin. El programa entrada se interpreta y ejecuta a la vez. Hay lenguajes que solo pueden ser interpretados, como por ejemplo: SNOBOL (StriNg Oriented SimBOlyc Language),LISP (LISt Processing), BASIC, JAVA, etc. La principal ventaja es que permiten una fcil depuracin. Los inconvenientes son, en primer lugar la lentitud de ejecucin, ya que si uno ejecuta a la vez que traduce no puede aplicarse mucha optimizacin, adems si el programa entra en un bucle tiene que interpretar y ejecutar todas las veces que se realice el bucle. Otro inconveniente es que durante la ejecucin, es necesario el intrprete en memoria por lo que consumen ms recursos. Diferencia entre los Compiladores y los interpretes Los compiladores difieren de los intrpretes en varios aspectos: Un programa que ha sido compilado puede correr por s slo, 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 interpretar en cualquier plataforma (sistema operativo). En cambio, el archivo generado por el compilador solo funciona en la plataforma en donde se le ha creado. Sin embargo, hablando de la velocidad de ejecucin, un archivo compilado es de 10 a 20 veces ms rpido que un archivo interpretado.

Docente: Lic. David I. Lpez Prez

Pgina 7

You might also like