Vous êtes sur la page 1sur 44

LENGUAJES DE PROGRAMACIN DE ALGORITMOS

Ing. Luis Ricardo Prez Aguilar

PROGRAMACIN
Qu es?

Definicin
Programacin es el proceso a travs del cual un programa o aplicacin informtica es desarrollado.
Se conoce como programacin en ciencias de la computacin a los pasos que se abordan para crear el cdigo fuente de un programa informtico. De acuerdo con estos pasos, el cdigo se escribe, se prueba y se perfecciona.

Definicin
El software informtico es aquel ejecutado por el hardware o dispositivos de una computadora, permitiendo que el usuario acceda a funciones y operaciones de todo tipo.
As, la programacin es una de las actividades ms determinantes en el desarrollo de sistemas eficientes, rpidos y amigables para todo tipo de usuarios.

PROGRAMADORES
Se conoce como programadores a aquello encargados de desarrollar este cdigo con instrucciones para que el software se comporte de una u otra manera de acuerdo con las rdenes que reciba.
El lenguaje de programacin es, por otro lado, la serie de parmetros y cdigos de los que el programador se vale para desarrollar software. Existen distintos tipos de lenguajes, como el C, BASIC, C#, JAVA, etc.

LENGUAJES DE PROGRAMACIN

DEFINICIN
Un lenguaje de programacin consiste en un conjunto de rdenes o comandos que describen el proceso deseado. Cada lenguaje tiene sus instrucciones y enunciados verbales propios, que se combinan para formar los programas de cmputo. Los lenguajes de programacin no son aplicaciones, sino herramientas que permiten construir y adecuar aplicaciones.
En pocas palabras, un lenguaje de programacin lo definiremos, como un conjunto de reglas, smbolos y palabras especiales que permiten construir un programa.

Lenguajes de programacin hay en gran cantidad, algunos han evolucionado a lo largo del tiempo y siguen vigentes en el transcurso de muchos aos, mientras que otros han sido operativos durante un perodo ms o menos largo y actualmente no se usan.
Los lenguajes de programacin utilizan juegos de caracteres "alfabeto" para comunicarse con las computadoras. Las primeras computadoras slo utilizaban informaciones numricas digitales mediante el cdigo o alfabeto digital, y los primeros programas se escribieron en ese tipo de cdigo, denominado cdigo mquina basado en dos dgitos 0 y 1, por ser entendible directamente por la mquina (computadora).

La tediosa tarea de programar en cdigo mquina hizo que el alfabeto evolucionase y los lenguajes de programacin comenzaran a utilizar cdigos o juegos de caracteres similares al utilizado en los lenguajes humanos. As, hoy da la mayora de las computadoras trabajan con diferentes tipos de juegos de caracteres de los que se destacan el cdigo ASCII y el EBCDIC.
De este modo, una computadora a travs de los diferentes lenguajes de programacin utilizan un juego o cdigo de caracteres que sern fcilmente interpretados por la computadora y que pueden ser programados por el usuario.

Al igual que los lenguajes humanos, tales como el ingls o el espaol, los lenguajes de programacin poseen una estructura (gramtica o sintaxis) y un significado (semntica). La gramtica espaola trata de los diferentes, modos (reglas) en que pueden ser combinados los diferentes tipos de palabras para formar sentencias o frases aceptables en espaol. Los lenguajes de computadoras tienen menos combinaciones aceptables que los lenguajes naturales, sin embargo, estas combinaciones deben ser utilizadas correctamente; ello contrasta con los lenguajes naturales que se pueden utilizar aunque no sigan reglas gramaticales e incluso aunque no sean comprendidos.

ESTRUCTURA DE UN LENGUAJE

SINTAXIS
La sintaxis es el conjunto de reglas que gobiernan la construccin o formacin de sentencias (instrucciones) vlidas en un lenguaje. La sintaxis de un lenguaje de programacin es el aspecto que ofrece el programa. Proporcionar las reglas de sintaxis para un lenguaje de programacin significa decir cmo se escriben los enunciados, declaraciones y otras construcciones de lenguaje. Solamente las sentencias correctamente sintcticas pueden ser traducidas por un lenguaje de programacin, y los programas que contienen errores de sintaxis son rechazados por la computadora. Cada lenguaje de programacin posee sus propias reglas sintcticas.

SEMNTICA
La semntica es el conjunto de reglas que proporcionan el significado de una sentencia o instruccin del lenguaje. La semntica de un lenguaje de programacin es el significado que se da a las diversas construcciones sintcticas.
Por ejemplo, para proporcionar la sintaxis que se usa en Pascal para declarar un vector de 10 elementos, V, de enteros se dar una declaracin en Pascal, como: V: array[0..9] of entero; Por otra parte, en C, se especificara como: int V[10]; Si bien ambos crean objetos de datos similares en el tiempo de ejecucin, su sintaxis es muy diferente. Para entender el significado de la declaracin, se necesita conocer la semntica tanto de Pascal como de C para esta clase de declaraciones de arreglo.

GRAMTICA
La definicin formal de la sintaxis de un lenguaje de programacin se conoce ordinariamente como una gramtica, en anloga con la terminologa comn para los lenguajes naturales. Una gramtica se compone de un conjunto de reglas (llamadas producciones) que especifican las series de caracteres (o elementos lxicos) que forman programas permisibles en el lenguaje que se est definiendo. Una gramtica formal es simplemente una gramtica que se especifica usando una notacin definida de manera estricta. Las dos clases de gramticas tiles en tecnologa de compiladores incluyen la gramtica BNF (o gramtica libre del contexto) y la gramtica normal.

Ejemplo de programacin

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 la medida del hardware, aprovechan al mximo las caractersticas del mismo. Dentro de este grupo se encuentran: El lenguaje maquina El lenguaje ensamblador

LENGUAJE MQUINA

Qu es?
El lenguaje mquina es el nico lenguaje que puede ejecutar una computadora, es especfico en cada arquitectura, es un cdigo que es interpretado directamente por el microprocesador, est compuesto por un conjunto de instrucciones ejecutadas en secuencia que representan acciones que la mquina podr tomar.
El lenguaje mquina es el nico que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos nicos smbolos 0 y 1, denominados bits; fsicamente, se materializan con tensiones comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos que contengan una informacin se utilizan una serie de unos y ceros cuyo conjunto indica dicha informacin.

Fue el primer lenguaje utilizado en la programacin para las primeras computadoras, pero dej de utilizarse por su dificultad y complicacin, siendo sustituido por otros lenguajes ms fciles de aprender y utilizar, y que adems reducen la posibilidad de cometer errores.
La informacin que hace que el hardware de la computadora realice una determinada actividad de llama instruccin, por consiguiente una instruccin es un conjunto de unos y ceros, las instrucciones as formadas equivalen a acciones elementales de la mquina, por lo que al conjunto de dichas instrucciones que son interpretadas directamente por la mquina se denomina lenguaje mquina.

Todo cdigo fuente en ltima instancia debe llevarse a un lenguaje mquina mediante el proceso de compilacin o interpretacin para que la computadora pueda ejecutarlo.
Las instrucciones preparadas en cualquier lenguaje de mquina tienen por lo menos dos partes, el comando u operacin, que dice a la computadora cul es la funcin que va a realizar y la instruccin es el operando, que indica a la computadora donde 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.

Una instruccin en lenguaje mquina puede, por ejemplo, representarse de la siguiente forma:

011011001010010011110110
Esta secuencia es fcilmente ejecutada por la computadora, pero es de difcil interpretacin, siendo aun ms difcil la interpretacin de un programa escrito de esta forma, esta dificultad hace que los errores sean frecuentes y la correccin de los mismos costosa, cuando no imposible, al igual que la verificacin y modificacin de los programas.

Como se puede observar, estas instrucciones sern fciles de leer por la computadora y difciles por un programador, y viceversa, esta razn hace difcil escribir programas en cdigo o lenguaje a mquina y requiere buscar otro lenguaje para comunicarse con la computadora, pero que sea ms fcil de escribir y leer por el programador. Para evitar la tediosa tarea de escribir programas en lenguaje maquina, se han diseado otros lenguajes de programacin que facilitan la escritura y posterior ejecucin de los programas. EJEMPLO

Las ventajas de esto son evidentes, ya que para el hombre resulta ms fcil manipular grupos de caracteres y la traduccin se hara de manera automtica. Por ejemplo, se podra escribir:

ALMACENAR 11010110, 00011101


Esto indicara que el contenido de la posicin 11010110 haba que pasarlo a la posicin 00011101 si se sabe que al grupo alfabtico ALMACENAR le corresponde la secuencia de bits 11110101. La mquina traducira la anterior instruccin como:

11110101 11010110 00011101

VENTAJAS Y DESVENTAJAS
VENTAJAS Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin.
DESVENTAJAS
Dificultad y lentitud en la codificacin. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas.

Los programas solo son ejecutables en el mismo procesador

(CPU).

LENGUAJE ENSAMBLADOR

El lenguaje ensamblador es un derivado del lenguaje maquina y est formado por abreviaturas de letras y nmeros llamadas mnemotcnicos, con la aparicin de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje mquina, como ventaja con respecto al cdigo mquina es que los cdigos fuentes eran ms cortos y los programas creados ocupaban menos memoria, las desventajas de este lenguaje siguen siendo prcticamente las mismas que las del lenguaje ensamblador, aadiendo la dificultad de tener que aprender un nuevo lenguaje difcil de probar y mantener.

LENGUAJES DE ALTO NIVEL

Se encuentran ms cercanos al lenguaje natural que al lenguaje mquina, estn dirigidos a solucionar problemas mediante el uso de EDDs (Estructuras Dinmicas de Datos), son estructuras que pueden cambiar de tamao durante la ejecucin del programa, permiten crear estructuras de datos que se adapten a las necesidades reales de un programa, son lenguajes independientes de la arquitectura de la computadora, es decir que en principio, un programa escrito en un lenguaje de alto nivel, se puede migrar de una mquina a otra sin ningn tipo de problema. Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquinas para la que estn diseando el programa, solo necesitan un traductor que entiendan el cdigo fuente como las caractersticas de la maquina, suelen usar diferentes tipos de datos para la programacin, hay lenguajes de propsito general y de propsito especifico.

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 DE LENGUAJES
Primera generacin: lenguaje maquina.
Segunda generacin: se crearon los primeros lenguajes

ensambladores. Tercera generacin: se crean los primeros lenguajes de alto nivel. Cuarta generacin: son lenguajes capaces de generar cdigo por si solos, 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 de partes del cdigo para otros programas. Quinta generacin: aqu se encuentran los lenguajes orientados a la inteligencia artificial, estos lenguajes todava estn poco desarrollados.

3era generacin
Los lenguajes de tercera generacin incluyen:
FORTRAN

COBOL
BASIC PASCAL

C
C++ C# JAVA

4ta generacin
Dentro de los lenguajes de cuarta generacin se incluyen:
SQL
Natural WinDev

PowerBuilder
Focus Oracle Reports MatLab

5ta generacin
Lenguajes que se emplean en inteligencia artificial:
Prolog
OPS5 Mercury

COMPONENTES DE LENGUAJES DE PROGRAMACIN

INTRPRETES
Joyanes Aguilar, define a un Intrprete, como un traductor que toma un programa fuente, lo traduce, y a continuacin lo ejecuta. Los programas intrpretes clsicos, como BASC, prcticamente ya no se utilizan, aunque se puede encontrar alguna computadora que opere con la versin QBasic bajo el Sistema Operativo DOS que corre en las computaras personales. Sin embargo, est muy extendida la versin interpretada del Lenguaje Smalltalk, un lenguaje orientado a objetos puro. Los intrpretes han vuelto a renacer con la aparicin de Java, ya que para entender el cdigo en bytes (bytecode) al que traduce un compilador se necesita un intrprete.

COMPILADORES
Despus que se ha diseado el algoritmo y escrito el programa en un papel, se debe comenzar el proceso de introducir el programa en un archivo (fichero) en el disco duro de la computadora. La introduccin y modificacin del programa en un archivo se hace utilizando un editor de texto o simplemente un editor, un programa que viene en la computadora. El aprendizaje de cmo utilizar un editor hace la tarea de introducir un programa una tarea muy fcil.

El programa ya sea escrito en C o en Java, o en cualquier otro lenguaje, pero ni C ni Java son lenguajes mquina, por el contrario son lenguajes de alto nivel diseados para hacer ms fcil la programacin que utilizando el lenguaje mquina. La computadora no entiende los lenguajes de alto nivel. En consecuencia, un programa escrito en un lenguaje de alto nivel debe ser traducido a un lenguaje que la mquina pueda comprender. Los lenguajes que la computadora puede comprender se llaman lenguajes de bajo nivel. La traduccin de un programa escrito en un lenguaje de alto nivel, como C++ o Java, a un lenguaje que pueda entender la computadora se hace mediante otro programa conocido como compilador.

Los lenguajes de bajo nivel que la computadora puede entender directamente se conocen como lenguajes ensamblador o lenguaje mquina. En realidad, aunque son muy similares y en ocasiones se les considera sinnimos, tienen algunas pequeas diferencias. El lenguaje que la computadora puede comprender directamente se denomina lenguaje mquina. El lenguaje ensamblador es casi la misma cosa, pero necesita un paso adicional para que la traduccin pueda ser entendida por la mquina. Si un compilador traduce el programa de alto nivel a algn lenguaje de bajo nivel, no es exactamente lenguaje mquina, se necesita, por tanto, una pequea traduccin adicional antes de ser ejecutado en la computadora, pero normalmente este proceso suele ser automtico y no es problemtico.

RESUMEN
En esencia, un compilador es un programa que traduce un programa en lenguaje de alto nivel, tal como un programa de C/C++/Java, en un programa de un lenguaje ms sencillo que la computadora puede comprender ms o menos directamente.

FASES DE COMPILACIN
El proceso de ejecucin de un programa escrito en un lenguaje de programacin (por ejemplo, C) y mediante un compilador suele tener los siguientes pasos: 1. Escritura del lenguaje mquina con un editor (programa que permite a una computadora actuar de modo similar a una mquina de escribir electrnica) y guardarlo en un dispositivo de almacenamiento (por ejemplo, un disco). 2. Introducir el programa fuente en memoria. 3. Compilar el programa con el compilador C. 4. Verificar y corregir errores de compilacin (listado de errores). 5. Obtencin del programa objeto. 6. El enlazador (linker) obtiene el programa ejecutable. 7. Se ejecuta el programa y, si no existen errores, se tendr la salida del programa.

FASES DE EJECUCIN DE UN PROGRAMA