Sunteți pe pagina 1din 36

REPBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIN UNIVERSITARIA UNIVERSIDAD NACIONAL EXPERIMENTAL SIMN RODRGUEZ

NCLEO: CARICUAO

TIPOS DE PROGRAMACIN

PARTICIPANTES: SECCIN: A AMBIENTE: 08 GRUPO #05 FACILITADOR:


ING. CARNEIRO DANIEL

RIOPELLE HCTOR SNCHEZ AILINN

C.I. V-17.477.607 C.I. V-18.459.829

CARACAS, 16 DE MAYO DEL 2012

NDICE GENERAL
Pg. INTRODUCCION... DESARROLLO Programacin Estructurado.............. Programacin Modular.... Programacin Orientada a Objetos... Programacin Concurrente. Programacin Funcional. Programacin Lgica... Programacin Spaguetti.. Tipos de Lenguaje de Programacin... Lenguajes Libres y Aplicaciones Propietarias. 3 6 7 12 13 18 20 21 23 26 30

CONCLUSIONES.... 33 REFERENCIAS BIBLIOGRAFICAS.. 34

INTRODUCCIN

Una computadora es una mquina que solo comprende las instrucciones que se le den en un determinado formato. Cada mquina reconoce y ejecuta un nmero de instrucciones diferentes que se agrupan en los distintos lenguajes de programacin. Ahora bien, un lenguaje de programacin, es un conjunto finito de palabras y de smbolos que representan procedimientos, clculos, decisiones y otras operaciones que puede ejecutar un ordenador. Este trabajo contemplara la clasificacin ms comn y bsica que suele hacerse de los lenguajes de programacin, en la se divide en lenguajes de bajo nivel y de alto nivel. Es importante destacar, que los lenguajes de programacin de bajo nivel fueron los primeros que surgieron y se llaman as porque estn directamente relacionados con el hardware del computador, es decir, el usuario introduce una serie de cdigos numricos que la mquina va a interpretar como instrucciones. Para usar este lenguaje, el programador tena que conocer el funcionamiento de la mquina al ms bajo nivel y los errores de programacin eran muy frecuentes. Por otra parte, los lenguajes de alto nivel surgieron con posterioridad con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inici como un "simple" esfuerzo de traducir un lenguaje de frmulas, al lenguaje ensamblador y por consiguiente al lenguaje de mquina, facilitando la labor a los programadores. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: facilitar la vida al programador, aumentando la productividad. Estos lenguajes usan un nmero reducido de instrucciones
3

(normalmente en ingls) que siguen unas estrictas reglas gramaticales que se conocen como sintaxis del lenguaje. Pero aunque el programador de esta forma se distancie del hardware del computador, este sigue trabajando en lenguaje mquina. Por ello se hace necesaria una traduccin a una secuencia de instrucciones interpretables por el ordenador. Esta labor es llevada a cabo por los compiladores y los intrpretes. El compilador es un programa que se encarga de la traduccin global del programa realizado por el usuario, esta operacin recibe el nombre de compilacin. El programa es traducido completamente antes de que se ejecute, por lo que la ejecucin se realiza en un periodo muy breve. El intrprete por el contrario, lleva a cabo una traduccin inmediata en el momento de la ejecucin, es decir, ir ejecutando las instrucciones una a una haciendo que el proceso requiera un periodo de tiempo mayor del que necesitara un compilador. Los intrpretes son usados para traducir programas de alta dificultad de implementacin, en estos casos, las rdenes a traducir son de tal complejidad que no merece la pena crear un compilador ya que este tambin tendra que ser de una complejidad por encima de lo normal. Para continuar, hay que mencionar la existencia de lenguajes que combinan caractersticas de los de alto nivel y los de bajo nivel (es decir, ensamblador). Un ejemplo es C: que contiene estructuras de programacin de alto nivel, sin embargo, fue diseado con muy pocas instrucciones, las cuales son sumamente sencillas, fciles de traducir al lenguaje de la mquina y requiere de un entendimiento apropiado de cmo funciona la mquina, el uso de la memoria, etctera. Por ello, algunos consideran a lenguajes como C (que fue diseado para hacer sistemas operativos), lenguajes de nivel medio, si bien son considerados mayoritariamente de bajo nivel.
4

Aunque en esta introduccin se ha comenzado a hablar de los lenguajes dividindolos en bajo y alto nivel, en las prximas pginas se proceder a un anlisis ms exhaustivo y detallado de los tipos de programacin y se vern las numerosas formas en que se pueden agrupar los lenguajes teniendo en cuenta funcionalidad y orientacin. Sin embargo no est estipulada ninguna clasificacin estricta debido a que dependiendo de la caracterstica por la que se clasifique, los tipos y lenguajes de programacin pueden estar relativamente en un grupo u otro. Sera iluso tratar de clasificar todo, ya que hay demasiados y con frecuencia surgen nuevos. No obstante, se ha tratado de realizar una clara y esquemtica clasificacin de los distintos tipos, que abarcase a los lenguajes ms importantes.

DESARROLLO

Cuando se programa, se indica una serie de instrucciones para que la computadora las ejecute, y para asegurarse de que la computadora entienda las instrucciones, se han establecido lenguajes bien definidos para especificar y poder generar la comunicacin con la computadora. Ahora bien, es importante aclarar que una cosa son los tipos de lenguaje de programacin y otra muy distinta son los tipos de programacin. Lo primero solo nos indica, el idioma que se va a utilizar para que el ordenador ejecute las instrucciones, es decir, el idioma (lenguaje de programacin) que generar la comunicacin con el ordenador. Mientras que lo segundo, nos indica es la forma o tcnica en cmo vamos a realizar dicha comunicacin con el ordenador. Entonces, ya habiendo aclarado dichos puntos, podemos abarcar ahora si a los diferentes tipos de programacin, pero antes de ello se debe tener en cuenta que dependiendo del autor o la fuente de donde se extrajo la informacin, los nombres de los tipos de programacin pueden variar de uno a otro. Tenemos pues, que los tipos o tcnicas de programacin son bastante variados, aunque hay muchas personas que slo conocen una metodologa para realizar los programas. En la mayora de los casos, las tcnicas se centran en programacin modular y programacin estructurada. Sin embargo, existen otros tipos de programacin, entre ellos se encuentras: Cuando se programa, se indica una serie de instrucciones para que la computadora las ejecute, y para asegurarse de que la computadora entienda
6

las instrucciones, se han establecido lenguajes bien definidos para especificar y poder generar la comunicacin con la computadora. Ahora bien, es importante aclarar que una cosa son los tipos de lenguaje de programacin y otra muy distinta son los tipos de programacin. Lo primero solo nos indica, el idioma que se va a utilizar para que el ordenador ejecute las instrucciones, es decir, el idioma (lenguaje de programacin) que generar la comunicacin con el ordenador. Mientras que lo segundo, nos indica es la forma o tcnica en cmo vamos a realizar dicha comunicacin con el ordenador. Entonces, ya habiendo aclarado dichos puntos, podemos abarcar ahora si a los diferentes tipos de programacin, pero antes de ello se debe tener en cuenta que dependiendo del autor o la fuente de donde se extrajo la informacin, los nombres de los tipos de programacin pueden variar de uno a otro. Tenemos pues, que los tipos o tcnicas de programacin son bastante variados, aunque hay muchas personas que slo conocen una metodologa para realizar los programas. En la mayora de los casos, las tcnicas se centran en programacin modular y programacin estructurada. Sin embargo, existen otros tipos de programacin, entre ellos se encuentras:

a) Programacin Estructurada (PE):

La programacin estructurada est compuesta por un conjunto de tcnicas que han ido evolucionando, aumentando considerablemente la

productividad del programa reduciendo el tiempo de depuracin y mantenimiento del mismo. El principio fundamental de este tipo de programacin es que en todo momento el programador pueda mantener el programa dentro de la cabeza. Esto se consigue con un diseo descendente del programa, con unas estructuras de control limitadas y con un mbito limitado de las estructuras de datos del programa. Esto hace que sea ms fcil la escritura y verificacin de programas ya que se adapta perfectamente al diseo descendente Esta programacin estructurada utiliza un nmero limitado de estructuras de control, reduciendo as considerablemente los errores y es importante mencionar que esta tcnica incorpora:

Diseo descendente (top-dow): el problema se descompone en etapas o estructuras jerrquicas.

Recursos abstractos (simplicidad): consiste en descomponer las acciones complejas en otras ms simples capaces de ser resueltas con mayor facilidad.

Estructuras bsicas: existen tres tipos de estructuras bsicas:


Estructuras secunciales: cada accin sigue a otra accin

secuencialmente. La salida de una accin es la entrada de otra.


Estructuras selectivas: en estas estructuras se evalan las

condiciones y en funcin del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lgicas.
Estructuras repetitivas: son secuencias de instrucciones que se

repiten un nmero determinado de veces.


8

Secuencial

Selectiva

Repetitiva

Las principales ventajas de la programacin estructurada son: que los programas son ms fciles de entender, que se reduce la complejidad de las pruebas, que se aumenta la productividad del programador y que los programas quedan mejor documentados internamente. Ahora bien, para saber si un programa est estructurado se debe verificar si posee un nico punto de entrada y slo uno de salida, si existen de "1 a n" caminos desde el principio hasta el fin del programa y por ltimo, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos. Veamos algunos ejemplos:

Estructura Secuencial: Ejecucin de sentencias una detrs de la otra. En C++, toda una estructura secuencial se agrupa mediante los smbolos {y}

Todo el bloque se considera una sola sentencia, despus de la llave no se pone punto y coma Estructura Selectiva: alternativa simple

10

Estructura Selectiva: alternativa doble

11

Estructura Repetitiva: consiste en repetir una sentencia, tambin se denominan bucles. Siempre ha de existir una condicin de parada, es decir, hay que garantizar que para cualquier caso el bucle parara.

La sentencia puede no ejecutarse nunca si la condicin no se cumple. Si la condicin est mal hecha, el bucle puede no acabar nunca. Es lo que se denomina un bucle infinito. En C++ la sintaxis seria: while (expresin lgica) sentencia
12

b) Programacin Modular:

Uno de los mtodos ms conocidos para resolver un problema es dividirlo en problemas ms pequeos, llamados subproblemas. De esta manera, en lugar de resolver una tarea compleja y tediosa, resolvemos otras ms sencillas y a partir de ellas llegamos a la solucin. Esta tcnica se usa mucho en programacin ya que programar no es ms que resolver problemas, y se le suele llamar diseo descendente, metodologa del divide y vencers o programacin top-down. La programacin modular es uno de los mtodos de diseo ms flexible y potentes para mejorar la productividad de un programa. Y es evidente que si esta metodologa nos lleva a tratar con subproblemas, entonces tambin tengamos la necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele llamar mdulos, de ah viene el nombre de programacin modular.

13

Veamos un ejemplo de cmo emplear el diseo descendente para resolver un problema. Supongamos que un profesor quiere crear un programa para gestionar las notas de sus alumnos. Quiere que dicho programa le permita realizar tareas tales como asignar notas, cambiar notas, ver las notas segn distintas calificaciones, etc. A continuacin tienes un esquema que representa una de las posibles divisiones del problema en mdulos.

14

c) Programacin Orientada a Objetos (POO)

Se trata de una tcnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilizacin de los objetos y el elemento principal de la programacin orientada a objetos es el objeto. El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organizacin. Contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento.

En otras palabras, la Programacin Orientada a Objetos (POO) es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real que otros tipos de programacin. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en trminos de objetos, propiedades, mtodos y otras cosas que veremos rpidamente para aclarar

15

conceptos y dar una pequea base que permita soltarnos un poco con este tipo de programacin. Motivacin: Durante aos, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvan una y otra vez los mismos problemas. Para conseguir que los esfuerzos de los programadores puedan ser utilizados por otras personas se cre la POO. Que es una serie de normas de realizar las cosas de manera que otras personas puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el cdigo se pueda reutilizar. La POO no es difcil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede ser diferente segn el programador. Aunque podamos hacer los programas de formas distintas, no todas ellas son correctas, lo difcil no es programar orientado a objetos sino programar bien. Programar bien es importante porque as nos podemos aprovechar de todas las ventajas de la POO. Cmo se piensa en objetos: Pensar en trminos de objetos es muy parecido a cmo lo haramos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. Diramos que el coche es el elemento principal que tiene una serie de caractersticas, como podran ser el color, el modelo o la marca. Adems tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar. Pues en un esquema POO el coche sera el objeto, las propiedades seran las caractersticas como el color o el modelo y los mtodos seran las funcionalidades asociadas como ponerse en marcha o parar.
16

Por poner otro ejemplo vamos a ver cmo modelizaramos en un esquema POO una fraccin, es decir, esa estructura matemtica que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2. La fraccin ser el objeto y tendr dos propiedades, el numerador y el denominador. Luego podra tener varios mtodos como simplificarse, sumarse con otra fraccin o nmero, restarse con otra fraccin, etc. Estos objetos se podrn utilizar en los programas, por ejemplo en un programa de matemticas hars uso de objetos fraccin y en un programa que gestione un taller de coches utilizars objetos coche. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos tambin son objetos. Es decir, el taller de coches ser un objeto que utilizar objetos coche, herramienta, mecnico, recambios, etc. Clases en POO: Las clases son declaraciones de objetos, tambin se podran definir como abstracciones de objetos. Esto quiere decir que la definicin de un objeto es la clase. Cuando programamos un objeto y definimos sus caractersticas y funcionalidades en realidad lo que estamos haciendo es programar una clase. En los ejemplos anteriores en realidad hablbamos de las clases coche o fraccin porque slo estuvimos definiendo, aunque por encima, sus formas. Propiedades en clases: Las propiedades o atributos son las caractersticas de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades son algo as como variables donde almacenamos datos relacionados con los objetos.

17

Mtodos en las clases: Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos mtodos. Los mtodos son como funciones que estn asociadas a un objeto. Objetos en POO: Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual se crear. Esta accin de crear un objeto a partir de una clase se llama instanciar (que viene de una mala traduccin de la palabra instace que en ingls significa ejemplar). Por ejemplo, un objeto de la clase fraccin es por ejemplo 3/5. El concepto o definicin de fraccin sera la clase, pero cuando ya estamos hablando de una fraccin en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto. Para crear un objeto se tiene que escribir una instruccin especial que puede ser distinta dependiendo el lenguaje de programacin que se emplee, pero ser algo parecido a esto. miCoche = new Coche() Con la palabra new especificamos que se tiene que crear una instancia de la clase que sigue a continuacin. Dentro de los parntesis podramos colocar parmetros con los que inicializar el objeto de la clase coche. Estados en objetos: Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos un coche la propiedad color tomar un valor en concreto, como por ejemplo rojo o gris metalizado. El valor concreto de una propiedad de un objeto se llama estado. Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza el operador punto.

18

miCoche.color = rojo El objeto es miCoche, luego colocamos el operador punto y por ltimo el nombre de la propiedad a la que deseamos acceder. En este ejemplo estamos cambiando el valor del estado de la propiedad del objeto a rojo con una simple asignacin. Mensajes en objetos: Un mensaje en un objeto es la accin de efectuar una llamada a un mtodo. Por ejemplo, cuando le decimos a un objeto coche que se ponga en marcha estamos pasndole el mensaje ponte en marcha. Para mandar mensajes a los objetos utilizamos el operador punto, seguido del mtodo que deseamos invocar. miCoche.ponerseEnMarcha() En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar parntesis igual que cualquier llamada a una funcin, dentro iran los parmetros. Hay mucho todava que conocer de la POO ya que slo hemos hecho referencia a las cosas ms bsicas. Tambin existen mecanismos como la herencia y el polimorfismo que son unas de las posibilidades ms potentes de la POO. La herencia sirve para crear objetos que incorporen propiedades y mtodos de otros objetos. As podremos construir unos objetos a partir de otros sin tener que reescribirlo todo. El polimorfismo sirve para que no tengamos que preocuparnos sobre lo que estamos trabajando, y abstraernos para definir un cdigo que sea compatible con objetos de varios tipos.

19

Son conceptos avanzados que cuesta explicar en las lneas de ese informe. No hay que olvidar que existen libros enteros dedicados a la POO y aqu solo pretendemos dar un repaso a algunas cosas

d) Programacin Concurrente:

Este tipo de programacin se utiliza cuando tenemos que realizar varias acciones a la vez. Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultnea. Se trata de una programacin ms lenta y laboriosa, obteniendo unos resultados lentos en las acciones. Un programa concurrente es un programa que tiene ms de una lnea lgica de ejecucin, es decir, es un programa que parece que varias partes del mismo se ejecutan simultneamente. Un ejemplo de de esto es un programa que realice determinada funcin y simultneamente, exponga datos en la pantalla. Un programa concurrente puede correr en varios procesadores simultneamente o no. Esta importancia de la concurrencia es especialmente destacable en sistemas operativos como Linux, que adems de concurrentes, presentan unos mecanismos de concurrencia estables. El concepto fundamental de la programacin concurrente es la nocin de proceso. El termino proceso fue utilizado por primera vez por los diseadores del sistema Multics en los aos 60s. Desde entonces, el termino proceso, es utilizado a veces como sinnimo de tarea, ha tenido muchas definiciones. Ejemplo de Programacin Concurrente en Java:

20

e) Programacin funcional:

Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones.

21

Este tipo de programacin, 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). Ejemplo de Programacin Funcional:

f) Programacin Lgica:

Se suele utilizar en la inteligencia artificial y pequeos programas infantiles. Se trata de una programacin basada en el clculo de predicados
22

(una teora matemtica que permite lograr que un ordenador basndose en hecho y reglas lgicas, pueda dar soluciones inteligentes). 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, forman 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

23

inteligencia artificial y que se aplica de mltiples formas en el desarrollo de software comercial. Ejemplo de Programacin Lgica en Prolog:

/*Hechos*/ mujer(mar). mujer(ana). mujer(luca). hombre(csar). hombre(jorge). hombre(jos). /*Relaciones*/ padre(csar,luca). madre(mar,luca). padre(jos,ana). padre(jos,jorge). /*Reglas*/ nino(X,Y):- padre(Y,X). hijo(X,Y):-nino(X,Y),hombre(X). hija(X,Y):-nino(X,Y),mujer(X). hermano_o_hermana(X,Y):-padre(Z,X),padre(Z,Y). hermano(X,Y):-hermano_o_hermana(X,Y),hombre(X). hermana(X,Y):-hermano_o_hermana(X,Y),mujer(X).

Factorial en Prolog:

%factorial(+N,?R) factorial(0, 1). factorial(N, R) :- N > 0, Naux is N - 1, factorial(Naux, Raux), R is N*Raux.

g) Programacin Spaghetti:

24

El cdigo spaghetti es un trmino peyorativo (es el uso del lenguaje con una finalidad negativa para lo que se designa.) para los programas de computacin que tienen una estructura de control de flujo compleja e incomprensible. Su nombre deriva del hecho que este tipo de cdigo parece asemejarse a un plato de espaguetis, es decir, un montn de hilos intrincados y anudados. Tradicionalmente suele asociarse este estilo de programacin con lenguajes bsicos y antiguos, donde el flujo se controlaba mediante sentencias de control muy primitivas como GOTO (es una instruccin muy comn en los lenguajes de programacin con el objetivo de controlar el flujo del programa) y utilizando nmeros de lnea. Un ejemplo de lenguaje que invitaba al uso de cdigo spaghetti es el QBasic de Microsoft en sus primeras versiones. Sin embargo, se debe tener en cuenta que hoy, con lenguajes modernos como PHP, SQL, Javascript (su ltima versin) junto con HTML (incluyendo su ltima versin), el tipo de programacin spaghetti es cada vez ms utilizado ya que muchas veces estos lenguajes deben quedar entrelazados, aunque es perfectamente posible que un programador experimentado evite esto aunque se requiera para ello de un poco ms de esfuerzo de programacin que al final viene a ser recompensado con una programacin ms limpia, fcilmente entendible que le beneficia incluso a l mismo a la hora de dar mantenimiento a los sistemas.

Ejemplo de Programacin Espaguetti en PHP:


25

<?php $a=1; $b=2; echo '<html>'; echo '<head>'; echo '</head>'; echo '<body>'; echo '<form action="pr2.php">'; if($a+$b==1) { echo' echo' } else { echo' echo' } echo' </FORM> '; echo ' </body>'; <p>Telefono<input type="text" name="telefono" value="" /></p>'; <p>Direccion <input type="text" name="direccion" value="" /></p>'; <p>Nombre<input type="text" name="nombre" value="" /></p>'; <p>Apellido <input type="text" name="apellido" value="" /></p>';

echo '</html>'; ?>

En este momento, el lector de este trabajo es capaz de comprender y saber que existen muchas tcnicas para programar, ahora bien, veamos un poco que son y cules son los lenguajes de programacin mas utilizado. En computacin, un lenguaje de programacin es cualquier lenguaje artificial, el cual, se utiliza para definir adecuadamente una secuencia de instrucciones que puedan ser interpretadas y ejecutadas en una computadora. Se asume que las instrucciones as escritas son traducidas luego a un cdigo que la mquina pueda comprender. El proceso de traduccin es realizado normalmente por la computadora, usando un programa especializado para tal fin.

26

Los lenguajes de programacin intentan conservar una similitud con el lenguaje humano, con la finalidad de que sean ms naturales a quienes los usan. Establecen un conjunto de reglas sintcticas y semnticas, las cuales rigen la estructura del programa de computacin que se escribe o edita. De esta forma, permiten a los programadores o desarrolladores, poder especificar de forma precisa los datos sobre los que se va a actuar, su almacenamiento, transmisin y dems acciones a realizar bajo las distintas circunstancias consideradas Una vez que se identifica una tarea y se conoce el algoritmo para resolverla, el programador debe codificarlo en una lista de instrucciones, propias de algn lenguaje de computacin. Los programas pueden ser escritos en cualquier lenguaje de la amplia gama disponibles. La escogencia del ms adecuado, depender de factores como la experiencia del programador con un lenguaje, determinar cul producir el programa menos complicado, la flexibilidad y la compatibilidad del programa como resultado del lenguaje usado A continuacin se presenta como ejemplo un sencillo programa fuente, escrito en C, el cual, es un lenguaje de programacin que lleg a ser muy popular, y justo al lado se explica la accin que realizar la computadora en respuesta a los comandos del programa. El programa tiene como finalidad el clculo del promedio de una lista de cinco nmeros.
Instrucciones en Lenguaje C Accin de la computadora 1.- Define una matriz (datos) de nmeros enteros y le asigna los valores 25, 88, 20, 75, 62. 2.- Define la variable (nDatos) de tipo entero y le asigna el valor 5. 3.- Define la funcin (promedio) que devuelve un nmero entero.

int datos[ ] = { 25, 88, 20, 75, 62 }; int nDatos = 5; int promedio ()

27

{ int suma; int prom; int cont; suma = 0; for (cont=0; cont<nDatos; cont++) { suma += datos [cont]; } prom=suma/nDatos; return (prom); } 9.- Asigna a prom el resultado de dividir la variable suma por la variable nDatos. 10.- Devuelve como resultado de la funcin el contenido de la variable prom. 4.- Define la variable (suma) de tipo entero. 5.- Define la variable (prom) de tipo entero. 6.- Define la variable (cont) de tipo entero. 7.- Asigna a suma el valor 0. 8.- Para cada elemento de la matriz datos, aade su valor a la variable suma.

Tipos de Lenguajes de Progrmacin A continuacin se muestra una lista de los Lenguajes de Programacin ms usados:

28

A parte de los mencionados en la lista, tambin se encuentran:

ADA: Es un lenguaje estructurado parecido al Pascal destinado

a controlar mecanismos en "tiempo real" (o sea una velocidad compatible con las necesidades reales), pero de gran complejidad. Admite una programacin "orientada a objetos" y un sistema de alta modularidad de tipo HyperTexto. Fue elaborado a pedido del Departamento de Defensa de los Estados Unidos y establecido como norma para todos los fabricantes que participaban en el programa de la Iniciativa de Defensa Estratgica (IDE, tambien llamado "Guerra de las Galaxias" .

ASSEMBLER (ENSAMBLADOR): Como sealado a propsito

del "Primer Nivel" de los lenguajes, el Assembler es directamente dependiente de los circuitos electrnicos de los procesadores (que constituyen el ncleo de los computadores), por lo cual escribir en Ensamblador sigue siendo una tarea muy compleja, a lo cual hay que sumar que el cdigo varia de un procesador a otro aunque existe ya una jerga comn para ciertas operaciones como las aritmticas y lgicas.

ALGOL: El ALGOL ("ALGOrithmic Lenguage" es el primer

lenguaje que fue creado por un comit internacional. En 1960 se reunieron representantes de varios pases Europeos y de Estados Unidos para crear un lenguaje destinado a "describir procesos" mediante instrucciones de control (iteraciones y alteraciones) de nivel ms elevado que la existentes en las versiones existentes de su predecesor, el FORTRAN.

COBOL: El COBOL ("COmmon Business-Oriented Language"

es uno de los primeros lenguajes de programacin creados. Fue


29

desarrollado en 1960 por CODASYL (Conference on Data Systems Languages" , un comit en que participaron fabricantes y usuarios, a pedido de la Marina de los Estados Unidos. Este comit estuvo dirigido por la Dra. Grace Hopper, una de las primeras programadoras de la computadora ENIAC. Es uno de los pocos lenguajes reconocidos como forma internacional (americana por el ANSI -American Nacional Standars Institute- y europea por el ISO -Internacional Organization for Standardization-).

FORTRAN:

El

FORTRAN

("FORmula

TRANslator"

fue

desarrollado entre los aos 1954 y 1957 por un equipo dirigido por James Backus, fue el primer lenguaje compilado e inclusive hoy en da es usado ampliamente en la solucin de problemas numricos. Aunque fue el ms comn hasta 1970, sigue siendo de primera importancia en aplicaciones cientficas por cuanto se adapta muy bien a la forma tradicional de escribir formulas matemticas. Al contrario, no se presta con facilidad al manejo de archivos y produccin de tablas de resultados.

HYPERTALK: "HyperTalk" es el lenguaje desarrollado por Dan

Winkler pra Bill Atkinson, el creador de "HyperCard" para AppleMacintosh. 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. 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.

30

HTML: El HTML o "HyperText Marking Language" es el

lenguaje que se utiliza para crear pginas -como la presente- en World Wide Web. El HTML se basa en los mismos principios que el HyperTalk, permitiendo definir segmentos (de texto o ilustraciones) que remiten a otros, facilitando una "navegacin" por mltiples vas, a gusto del usuario. As es como el botn "Home" tiene asociadas las instrucciones que indican al procesador que busque la primera ficha o pgina del archivo llamado "Home" o "index" en el archivo del computador que presta el servicio de conexin (servidor). Y si se hace un clic en una palabra subrayada, se pasa a ver otra seccin del mismo documento o algn otro documento (otro "objeto" .

Lenguajes Libres y Aplicaciones Propietarias Los programadores que trabajan en empresas, a veces no pueden liberar como libres, los programas que realizan debido a imposiciones en los contratos. En lenguajes como C, Visual Basic o Delphi, no hay ningn problema, si deseamos un Software Propietario, solo lo compilamos y distribuimos los binarios. En Java hace un tiempo era igual. Pero con su reciente cambio a GNU GPL se ha levantado un problema. Pueden los desarolladores de Software Propietario valerse de lenguajes libres para su trabajo?: Aunque ticamente dira que no, hay que entender que tambin ellos trabajan. De acuerdo a la FSF (Free Software Foundation), la ley de Copyright de Estados Unidos y de otros pases, considera a los cdigos fuentes de programas escritos lenguajes interpretados como Trabajos Derivados. Cuando lo distribuimos bajo
31

licencias libres, no hay problemas, como dije anteriormente. Pero las aplicaciones propietarias tienen algunos problemas. Hagamos un pequeo viaje por ellas. Python: Su licencia permite el uso para aplicaciones propietarias. Si queremos ocultar nuestro cdigo, usaremos aplicaciones especficas para ello como Py2Exe, o compilaremos a ByteCode. Sin embargo, si usamos libreras bajo GPL, estamos obligados a distribuir nuestro Software como GPL. Java: Este es el que ms problemas ha causado. Con la licencia GPL y de acuerdo a la ley Norteamericana, todos los programas que sean escritos en Java deben ser liberados bajo la GPL al ser trabajos derivados por linkeado de las libreras. Sin embargo Sun ha puesto una excepcin en la licencia, para los desarrolladores de Software Propietario, que pueden linkear Java a sus aplicacions propietarias. La excepcin es la misma que tiene GNU Classpath. Pero, si usamos libreras GPL sin la excepcin, debemos liberar nuestro Software como GPL. Ruby: Este lenguaje es libre (Bajo licencia GPL), por lo que linkear con l, es un trabajo derivado. Sin embargo, la licencia de Ruby (En realidad son dos: La GPL y la Ruby License), especifica que los scripts no caen en la licencia de Ruby o la GPL. Pero si usamos bibliotecas GPL sin la excepcin, deberemos liberar bajo GPL nuestro Software. Perl: Es muy popular en el mundo libre. Tiene 2 licencias, la GPL y la Artistic License. La ltima nos permite liberar nuestro programa sin caer en las obligaciones de distribuir los fuentes. Sin embargo, si usamos libreras GPL, deberemos liberar nuestro Software bajo GPL.
32

Si queremos ocultar nuestro cdigo, hay una forma de hacerlo. Hacindolo Ofuscado). A pesar de que los lenguajes interpretados son fciles de aprender, pueden ocasionar algunos problemas si queremos ocultar nuestro cdigo, cosa que por lo difcil que me result investigar, no lo recomiendo a nadie. Linux: es un ncleo libre de sistema operativo basado en Unix. Es uno de los principales ejemplos de software libre. Linux est licenciado bajo laGPL v2 y est desarrollado por colaboradores de todo el mundo. tan ofuscado y jeroglfico como lo definen las competencias de Ofuscated Perl Contest (Concurso del Cdigo Perl

33

CONCLUSIN

Los tipos de programacin no son simplemente un detalle ms del amplio mundo de la informtica, y por lo tanto deben ser vistos como el fundamento y la base del desarrollo y avance de la computacin. Estudiar los conceptos bsicos, clasificacin, diferencias, propiedades y funcionamiento de los tipos de programacin as como de los lenguajes, es elemental para cualquier estudiante o profesional dedicado a la computacin, pues de esa manera se logra tener una perspectiva global y mucho ms amplia que tendr mucho peso al estar bien documentados y al conocer qu son, cmo se clasifican y de qu manera trabaja la programacin. Luego del desarrollo de esta investigacin resulta fcil comprender los tipos y la clasificacin que se les da a los lenguajes de programacin en base a sus funcionalidades y caractersticas, y a los tipos de programacin segn su tcnica. Este estudio tambin permite desarrollar un sentido crtico del tipo de programacin, de forma que el programador no seleccione ni emita un juicio respecto a determinada tcnica basado simplemente en su limitado conocimiento ni basado en la popularidad de la que goza cierto tipo de programacin, sino que el programador est capacitado para dar razones contundentes y certeras del por qu una tcnica y/o lenguaje es mejor que otro para determinada tarea, qu ventajas tiene uno respecto del otro, y que as tambin el programador sea capaz de seleccionar el lenguaje y tcnica que ms le convenga para la resolucin de un problema determinado.

34

REFERENCIAS Referencias de Fuentes Audiovisuales Comunicaciones Verbales y Entrevistas Personales:


(J. Parra, conversacin personal, Mayo 19, 2012) (E. Veliz, conversacin telefnica, Mayo 19, 2012))

Referencias de Fuentes Electrnicas Libros:

Exception! Computacin Mayo]

Diccionario

de

Informtica, en

Internet, lnea].

Tecnologas [Consulta:

[Libro

Disponible: 2012,

http://www.alegsa.com.ar/Diccionario/diccionario.php

Trabajos de Grado:

Baos, E. (2006). Tipos de Programacin y Lenguajes de Programacin. Trabajo de grado no publicado, Universidad El Salvador, El Salvador, Santa Ana. Disponible: http://www.monografias.com/trabajos38/tiposlenguajes-progrmacion/tipos-lenguajes-programacion2.shtml 2012, Mayo] Sitios de Informacin: [Consulta:

Wikipedia, La Enciclopedia Libre [Pagina Web en lnea]. Disponible: http://es.wikipedia.org/wiki/Peyorativo [Consulta: 2012, Mayo] Taringa, Lenguajes de Programacin ms Comunes [Pagina Web en Lnea] Disponible: http://www.taringa.net/posts/apuntes-y-

35

monografias/5299895/Lenguajes-de-programacion-mas-comunes.html [Consulta: 2012, Mayo]

EpistemoWikia, Revista Hiperenciclopedica [Pagina Web en Lnea] Disponible:http://campusvirtual.unex.es/cala/epistemowikia/index.php? title=Programaci%C3%B3n_L%C3%B3gica_y_Funcional 2012, Mayo] [Consulta:

WebTutoriales, Programacin web, artculos y tutoriales [Pagina Web en Lnea] Disponible: http://www.webtutoriales.com/articulos/programacionconcurrente-procesos-en-java [Consulta: 2012, Mayo]

Desarrollo

Web

[Pagina

Web

en

Lnea]

Disponible:

http://www.desarrolloweb.com/articulos/499.php/ [Consulta: 2012, Mayo]

Archivos de video y de audio:

YouTube (2011, Junio 07). Programacin Modular [Video en lnea]. Disponible: http://www.youtube.com/watch?v=7nmBIKErKGE [Consulta: 2012, Mayo]

36