Anda di halaman 1dari 61

2) Escribe un algoritmo para obtener el rea de un tringulo, tomando en cuenta que el rea: (base * altura)/2. ALGORITMO: 1. inicio 2.

pedir la base y la altura (B,H) 3. multiplicar la base y la altura y dividirlas entre 2 (A=B*H/2) 4. mostrar resultados (A) 5. fin

Calcula el area de un triangulo 1 //Victor 2 //-www.myalgorithm.com 3 //-Algoritmia@groups.msn.com 4 //Practica 1 5 //Programa 4//Calcula el area de un triangulo 6 #include 7 #include 8 9 main(){ clrscr(); 10 float base,altura,area; 11 printf("Programa que evalua el Area de un 12 triangulon"); 13 printf("Base: ");scanf("%f",&base); 14 printf("Altura: 15 ");scanf("%f",&altura); area=(float) 16 (base*altura)/2; 17 printf("nnArea: %f",area); 18 getche(); 19 }

Es lo ms sencillo: #include <iostream.h> #include <stdlib.h> void main() { float a, b; cout<<"Ingrese base : "; cin>> b ; cout<<"Ingrese altura : "; cin>> a ; cout<<"\nEl area es : "<<a*b ;

system("PAUSE"); return 0; }

Disear un diagrama de flujo para calcular y mostrar el rea de un tringulo. El diagrama deber de solicitar los datos necesarios y mostrar el resultado.

RESPUESTA:

Ejemplo 2: Definicin de variables Declaracin variable.- tipo Nombre (opcionalmente =valor) Asignacin.- variable = expresin /* ejemplo 2.- multiplica dos nmeros enteros y muestra el resultado por pantalla */ #include <stdio.h> int main( ) { int multiplicador; /*defino multiplicador como un entero */ int multiplicando; /*defino multiplicando como un entero */ int res; /*defino resultado como un entero*/ multiplicador =1000; /*les asigno valores*/ multiplicando=2; res=multiplicador*multiplicando; printf("Resultado = %d",res); /*muestro resultad

o en pantalla*/

Introduccin Conocer la historia del desarrollo de cualquier campo del saber humano es de gran importancia para aquellos que planeen desenvolverse en dicho campo, ya que tiene cuando menos dos beneficios tangibles: Conocer el estado promedio del arte y evitar cometer errores ya cometidos. As es mas fcil tomar las decisiones correctas y sobrevivir sin esfuerzo a muchas modas que estridentemente proclaman la reinvencin del hilo negro. Como dijo el filsofo espaol Gorge Santayana El que no conoce la historia esta condenado a repetirla.

Es comnmente aceptado que la historia de la computacin moderna comienza con Charles Babbage, en 1822, sin embargo las primeras computadoras mecnicas y elctricas no contaban con un lenguaje de programacin tal como lo conocemos ahora, la mayora de ellas era construida para llevar a cabo una tarea especifica; por lo tanto la forma de programarla era particular a cada computadora. Fue en el ao

de 1945 cuando el matemtico Jhon Von Neumann[1] fascinado por las posibilidades de ENIAC[2], elabor un estudio que demostr que una computadora poda tener una estructura fsica muy simple y fija, y aun as ser capaz de ejecutar cualquier tipo de programa mediante un control correcto, sin la necesidad de modificar la computadora para esto.

A partir de esta innovacin de Von Neunmann, que en conjunto se conoce como la tcnica de programa almacenado es que se inicia la era de los lenguajes de programacin.

Los primeros lenguajes 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 Es en el ao de 1957 cuando aparece el primero de los grandes lenguajes de programacin de uso an actualmente: FORTRAN, que proviene de FORmula TRANslating system.

Fue desarrollado por IBM para cmputo cientfico, el lder del proyecto fue John Backus, que despus contribuira en ALGOL. El lenguaje original solo inclua FOR, DO y GOTO. Tambin defini los tipos de datos bsicos: TRUE, FALSE, integer, real, double presicion. El lenguaje original era bueno manejando nmeros, pero malo manejando entrada y salida, lo cual propicio la aparicin de otros lenguajes orientados a negocios. LISP En el ao de 1958, el profesor John McCarthy[4] del M.I.T. comenz a desarrollar la teora de un lenguaje de de procesamiento de listas. En 1959 aparece publicamente la primer implementacin llamada LISP 1.5. En 1960 McCarthy publica un histrico articulo[5] acerca de los fundamentos de LISP que hizo por la programacin lo mismo que hizo Eucldes por la geometra, demostrar como con unos cuantos operadores y una notacin para funciones es posible construir un lenguaje de programacin completo[6]. Es importante hacer notar que McCarthy no solo marco un hito en la historia los lenguajes de programacin sino que creo un modelo de programacin que ha demostrado ser superior, tanto que podemos decir que en la actualidad existen dos grandes modelos de programacin el de C y el de Lisp, y podemos notar que los lenguajes del modelo C tratan de parecerse cada vez mas a Lisp. ALGOL En el ao de 1958 un comite crea la especificacin del lenguaje ALGOL, la tenia la particularidad de no definir la

manera de manejar entrada y salida, dejando esta parte libre a cada implementacin. Es en 1960 cuando aparece el lenguaje ALGOL 6.0 el primer lenguaje estructurado en bloques. Este lenguaje fue muy popular en el segundo lustro de los 60's. Su principal contribucin es ser la raiz del arbol que ha producido lenguajes tales como pascal, C, C++, y Java. COBOL En 1959, Conference on Data Systems and Languages (CODASYL) crea COBOL, un lenguaje para negocios; que fuera facil de aprender para gente que no tuviera formacin en ciencias de la computacin. Sus nicos tipos de datos fueron cadenas y nmeros. Lo que le dio la caracterstica de poder agruparlos en arreglos sencillos, de modo que los datos podian ser organizados y seguidos de una mejor manera. Las sentencias de COBOL se parecen mucho a las usadas por el idioma ingls, haciendo que fuera fcil de aprender. Todo esto con la finalidad de que los negocios promedio lo pudieran aprender y usar. Otros de los primeros tiempos Existieron otros lenguajes de programacin en los primeros tiempos, sin embrago la tarea de describir las caractersticas de cada uno es demasiado ambiciosa para este pequeo trabajo asi que solo se mencionan brevemente:

1946 Plankalkul del aleman Conrad Zuse aplicado para jugar ajedrez. 1952 Autocode un compilador de Alick E. Glennie. 1960 APL de Kenneth Iverson. 1962 SNOBOL de la empresa sure-fire.

Para ver una lista mas completa de los lenguajes de programacin existentes se sugiere visitar la pgina de rick Lvnez: http://www.levenez.com/lang/ que mantiene un poster de la historia de los lenguajes de programacin en una lnea de tiempo. Otra pgina recomendable es la de Bill Kinnersly: http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm que mantiene una lista de los lenguajes de programacin que han existido, y actualmente contiene aproximadamente 2,500 lenguajes de programacin.

Desarrollo de los lenguajes de programacin Basados en los primeros lenguajes de programacin han surgido muchos otros lenguajes que siempre tienen la intencin de tomar lo mejor, desechar lo malo, y agregar alguna novedad, respecto a los existentes. Solo se hace referencia a los mas conocidos. Basic Inventado en 1964 por John George Kemeny y Thomas Eugene Kurtz en el Colegio Dartmounth. Es un lenguaje muy limitado que fue diseado para personas que no fueran del rea de ciencias de la computacin. El nombre de BASIC, significa Symbolic Instruction Code. Beginners All-purpose

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 Diseado por Niklaus Wirth[7], como una herramienta de enseanza de la programacin. Sus desarrolladores se concentraron en desarrollar buenas herramientas que contribuyeran a la enseanza, tal como un buen debugger, y un buen editor. Adems tuvieron como meta el tener soporte para la mayora de los microprocesadores populares en esa poca en las instituciones de enseanza. Fue diseado de una manera muy ordenada, reflejando la experiencia de su diseador, tomo las mejores caractersticas de los lenguajes de su tiempo, COBOL, ALGOL, y FORTRAN, al mismo tiempo que busco evitar sus deficiencias, y hacerlo lo mas claro posible. La combinacin de sus caractersticas de entrada/salida, y sus solidas caractersticas matemticas pronto lo convirtieron en un lenguaje muy exitoso. Tambin implemento el tipo apuntador y agrego el CASE, e hizo uso de variables dinmicas. Sin embargo no implemento arreglos dinmicos ni agrupamiento de variables lo cual contribuyo a su perdida de popularidad frente a nuevos lenguajes. Delphi es una versin moderna y orientada a objetos de Pascal.

Prolog Diseado en 1970 en la universidad de Aix-Marseille por los profesores Alain Colmerauer y Phillipe Roussel, su nombre proviene del frances Programation et Logique, es popular en los circulos de interes en Inteligencia Artificial. Inicialmente era un lenguaje interpretado, hasta que a mediados de la decada de los 70's David Warren desarrollo un compilador, que convertia el programa en Prolog a un conjunto de instrucciones de una mquina abstracta denominada Warren Abstract Machine, o WAM. Su sintaxis y semantica son considerados simples y claros, su paradigma de programacin es el declarativo y un programa en Prolog se compone de clusulas que constituyen reglas del tipo modus ponens, es decir, "Si es verdad el antecendente, entonces es verdad el consecuente". No obstante, la forma de escribir las clusulas es al contrario de lo habitual. Primero se escribe el consecuente y luego el antecedente.

C Fue diseado en 1971, por Dennis Ritchie[8] y Ken Thompson[9] mientras trabajaban para los Laboratorios Bell, y se baso en los lenguajes de programacin B y BCPL. Se basa en el paradigma imperativo y desde su creacin estuvo pensado para programacin de sistemas operativos, se creo para usarse en UNIX, y crecio de la mano del desarrollo de UNIX, lo que propicio la creacin de caractersticas avanzadas tales como variables dinmicas, multitarea, manejo de interrupciones, forking y un poderoso manejo entrada/salida de bajo nivel. Debido a esto C es comunmente usado para programacin de nivel de sistema en UNIX, Linux y Mac.

Se trata de un lenguaje no fuertemente tipeado 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. Destaca su gran riqueza de operadores y expresiones.

C++ 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 autocontenidas 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 dinamicamente, 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 Java es una plataforma de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales. La plataforma Java consta de las siguientes partes: El lenguaje de programacin, mismo. La mquina virtual de Java o JRE, que permite la portabilidad en ejecucin. El API Java, una biblioteca estndar para el lenguaje

El lenguaje de programacin fue desarrollado por James Gosling[17], y sus equipo en Sun Microsystems,entre 1990 y 1994, pensado originalmente como un reemplazo de C++, orientado a dispositivos embebidos, y a la televisin interactiva, posteriormente que para rescatarlo del fracaso y fue reorientado hacia su aplicacin en la Web. Las cinco metas del lenguaje Java son:
o o

Orientado a objetos Multiplataforma

Soporte integrado para redes de computadoras o Diseado para ejecutar codigo de fuentes remotas de modo seguro o Facil de usar
o

Desde sus inicios Java no fue bien recibido por su falta de aportaciones originales, su lentitud, y su rigida estructura, sin embargo en base a intensas campaas de marketing Sun ha logrado que en los ambientes empresariales Java sea uno de los estndares sobre todo para aplicaciones del lado del servidor. Java tambin es presentado muchas veces como un lenguaje Libre lo cual no es completamente cierto[18][19].

Java Script 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). Ademas de la implementacion de Microsoft implementaciones libres como Mono y dotGNU. existen

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. Conclusin La historia de los lenguajes de programacin es materia obligada y fascinante para cualquier interesado en la programacin. Permite tener un mejor panorama de que es y que no es cada lenguaje y as elegir de una mejor manera los que le interesen y profundizar en los fundamentos de cada uno para encontrar el adecuado a su necesidad con bases solidas, sin dejarse llevar por modas o mercadotecnia.

Jhon Luis Von Neumman. (2005, Oct 7). [En lnea]. Disponible: http://ei.cs.vt.edu/~history/VonNeumann.html 2. ENIAC Museum Online. (2005, Oct 7). [En lnea]. Disponible: http://www.seas.upenn.edu/~museum/ 3. Revista Byte, Grace Hopper, (2005, Oct 8), [En lnea]. Disponible: http://www.byte.com/art/9509/img/505050a1.htm 4. McCarthy, John, Pgina personal, (2005, Oct 8), [En lnea]. Disponible: http://wwwformal.stanford.edu/jmc/index.html 5. McCarthy, John, Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part
1.

I, (2005, Oct 8), [En lnea]. Disponible: http://wwwformal.stanford.edu/jmc/recursive/recursive.html 6. Graham, Paul, The roots of Lisp, (2002, En 18), [En lnea]. Disponible: http://www.paulgraham.com/lib/paulgraham/jmc.ps 7. Wikipedia, La enciclopedia libre, (2005, Oct 8), [En lnea]. Disponible: http://es.wikipedia.org/wiki/Niklaus_Wirth 8. Wikipedia, La enciclopedia libre, (2005, Oct 8), [En lnea]. Disponible: http://es.wikipedia.org/wiki/Dennis_M._Ritchie 9. Wikipedia, The Free Encyclopedia, (2005, Oct 8), [En lnea]. Disponible: http://en.wikipedia.org/wiki/Ken_Thompson 10. Wikipedia, The Free Encyclopedia, (2005, Oct 8), [En lnea]. Disponible: http://en.wikipedia.org/wiki/Bjarne_Stroustrup 11. Wall, Larry, Pagina personal, (2005, Oct 8), [En lnea]. Disponible: http://www.wall.org/~larry/ 12. Wikipedia, The Free Encyclopedia, (2005, Oct 8), [En lnea]. Disponible: http://en.wikipedia.org/wiki/Guido_van_Rossum 13. Wikipedia, The Free Encyclopedia, (2005, Oct 8), [En lnea]. Disponible: http://en.wikipedia.org/wiki/Yukihiro_Matsumoto 14. Common Lisp the language, (2005, Oct 8), [En lnea]. Disponible: http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html 15. Steele, Guy y Gabriel, Richard, The evolution of Lisp, (2005, Oct 8), [En lnea]. Disponible: http://www.cs.umbc.edu/331/resources/papers/Evoluti on-of-Lisp.pdf 16. Graham, Paul, What made Lisp different, (May, 2002), [En lnea]. Disponible: http://www.paulgraham.com/diff.html 17. Wikipedia, The Free Encyclopedia, (2005, Oct 8), [En lnea]. Disponible: http://en.wikipedia.org/wiki/James_Gosling

Stallman, Richard. La trampa de Java, (Abr 12 2004), [En lnea]. Disponible: http://www.gnu.org/philosophy/java-trap.es.html 19. Gosling, James, Open sourcing Java, Abr 30 2004), [En lnea]. Disponible: http://today.java.net/jag/page7.html
18.

LENGUAJES MAQUINA Lenguaje de mquina es el sistema de cdigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autmata . Este lenguaje est compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la mquina. Un programa consiste en una cadena de estas instrucciones de lenguaje de mquina (ms los datos). Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de mquina es especfico de cada mquina o arquitectura de la mquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas.

Lenguaje de mquina del Intel 8088. El cdigo de mquina en hexadecimal se resalta en rojo, el equivalente en lenguaje ensamblador en magenta, y las direcciones de memoria

donde se encuentra el cdigo, en azul. Abajo se ve un texto en hexadecimal y ASCII. Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con dos nicos niveles de tensin. Dichos niveles, por abstraccin, se simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de mquina slo utiliza dichos signos. Esto permite el empleo de las teoras del lgebra booleana y del sistema binario en el diseo de este tipo de circuitos y en su programacin.

Un lenguaje de programacin de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las mquinas. En los primeros lenguajes de alto nivel la limitacin era que se orientaban a un rea especfica y sus instrucciones requeran de una sintaxis predefinida. Se clasifican como lenguajes procedimentales. Otra limitacin de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programacin para realizar las secuencias de instrucciones lgicas. Los lenguajes de alto nivel se crearon para que el usuario comn pudiese solucionar un problema de procesamiento de datos de una manera ms fcil y rpida. Por esta razn, a finales de los aos 1950 surgi un nuevo tipo de lenguajes de programacin que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman de tercera generacin o de alto nivel, en contraposicin a los de bajo nivel o de nivel prximo a la mquina.

Lenguajes de Bajo Nivel. Los lenguajes de bajo nivel son mas fciles de utilizar que los lenguajes mquina, pero, al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos. Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: en ingls, ADD, SUB, DIV, etc.; en espaol, SUM,RES,DIV,etc. Una instruccin tpica de suma sera: ADD M, N, P Esta instruccin podra significar sumar el nmero contenido en la posicin de memoria M al nmero almacenado en la posicin de memoria N y situar el resultado en la posicin de memoria P. Evidentemente es mucho ms sencillo recordar la instruccin anterior con un nemotcnico que su equivalente en cdigo mquina. 0110 1001 1010 1011 Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora en esto se diferencia esencialmente del lenguaje mquina, sino que requiere una fase de traduccin al lenguaje mquina. El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje mquina se conoce como programa objeto, ya directamente entendible por la computadora. El traductor de programas fuente a objeto es un programa llamado ensamblador, existente en casi todos los computadores. Programa fuente en ensamblador (assembly) Programa Ensamblador (assembler) Programa objeto en cdigo mquina.

No se debe confundir el programa ensamblador, encargado de efectuar la traduccin del programa fuente escrito a lenguaje mquina, con el lenguaje ensamblador, lenguaje de programacin con una estructura y gramtica definidas. Ventajas del lenguaje ensamblador. Los lenguajes ensambladores presentan la ventaja frente a los lenguajes mquina de su mayor facilidad de codificacin y, en general, su velocidad de clculo. Desventajas del lenguaje ensamblador. Los inconvenientes ms notables de los lenguajes ensambladores son:

Dependencia total de la mquina lo que impide la transportabilidad de los programas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Macintosh. La formacin de los programadores es ms compleja que la correspondiente a los programadores de alto nivel, ya que no slo las tcnicas de programacin, sino tambin el conocimiento del interior de la mquina.

Hoy da los lenguajes ensambladores tienen sus aplicaciones mas reducidas en la programacin de aplicaciones y se centran en aplicaciones de tiempo real, control de procesos y de dispositivos electrnicos, etc. Intrpretes. Un intrprete es un traductor que toma un programa fuente, lo traduce y a continuacin lo ejecuta. Programa Fuente Intrprete Traduccin y ejecucin lnea a lnea.

Un lenguaje que soporte un traductor de tipo intrprete se denomina lenguaje interpretado. BASIC es el modelo por excelencia de lenguaje interpretado. Los programas fuente en BASIC se escriben con ayuda de un programa denominado editor que suele venir incorporado al programa intrprete. Compiladores. Un compilador es un programa que traduce los programas fuente escritos en lenguajes de alto nivel: Pascal, FORTRAN.... a lenguaje mquina. Los programas escritos en lenguajes de alto nivel se llaman programa fuente y el programa traducido se le llama programa objeto cdigo objeto. El compilador traduce sentencia a sentencia el programa fuente. Lenguajes compiladores tpicos son: Pascal, FORTRAN, COBOL..., hoy da es posible encontrar tambin versiones de compiladores BASIC y de C. La compilacin es el proceso de traduccin de programas fuente a programas objeto. Programa Fuente. Compilador. Programa Objeto. El programa objeto obtenido de la compilacin no ha sido traducido normalmente a cdigo mquina sino a ensamblador. Para conseguir el programa mquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje mquina directamente ejecutable. Programa Fuente. Compilador (traductor). Programa Objeto.

Montador. Programa ejecutable en lenguaje mquina. El proceso de ejecucin de un programa Pascal, por ejemplo, tiene los siguientes pasos:

Escritura del programa fuente con un editor y guardarlo en un dispositivo de almacenamiento. Introducir el programa fuente en memoria. Compilar el programa con el compilador Pascal. Verificar y corregir errores de compilacin. Obtencin del programa objeto. El montador obtiene el programa ejecutable. Se ejecuta el programa y si no existen errores, se tendr la salida del programa.

Bibliografa: Titulo del libro: Fundamentos de Programacin. Autor: Editorial. Mc Graw Hill. Edicin. Primera Edicin.

Otros Qu es un lenguaje de programacin?. Un conjunto de sintaxis y reglas semnticas que definen los programas del computador. Es una tcnica estndar de comunicacin para entregarle instrucciones al computador. Un lenguaje le da la capacidad al programador de especificarle al computador, qu tipo de datos actan y que acciones tomar bajo una variada gama de circunstancias, utilizando un lenguaje relativamente prximo al lenguaje humano. Un programa escrito en un lenguaje de programacin necesita pasar por un proceso de compilacin, interpretacin o intermedio, es decir, ser traducido al lenguaje de mquina para que pueda ser ejecutado por el ordenador.

Los lenguajes de programacin pueden ser clasificados de acuerdo a diversos criterios:

Lenguajes interpretados (Interpretes) como Basic, Dbase.

Lenguajes compilados (Compiladores) como C, C++, Clipper. Lenguajes interpretados con recolectores de basura (Maquina Virtual) como Smalltalk, Java, Ocaml. Lenguajes Scripts (Motor de ejecucin) como Perl, PhP.

Clasificacin de los Lenguajes de Programacin

Declarativos

Se les conoce como lenguajes declarativos en ciencias computacionales aquellos lenguajes de programacin en los cuales se le indica a la computadora que es lo que se desea obtener o que es lo que se esta buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan ms de 32 aos. Algunos ejemplos de lenguajes declarativos son el Datatrieve, SQL y las expresiones regulares.

Siglas de Structured Query Language (Lenguaje Estructurado de Consultas). Es un lenguaje declarativo que ana caractersticas del lgebra y el Clculo Relacionales que nos permite lanzar consultas contra una Base de Datos para recuperar informacin de nuestro inters, almacenada en ella.

Ejemplos de consultas SQL: SELECT Nombre From Tabl_fich_personales where Edad >=18;

Muestra el Campo "Nombre" de todos los individuos mayores de 18 aos de la tabla "Tabl_fich_personales"

El concepto de expresiones regulares (Regular expressions en ingls) se refiere a una familia de lenguajes compactos y potentes para la descripcin de conjuntos de cadenas de caracteres. Numerosos editores de texto y otras utilidades (especialmente en el sistema operativo UNIX), como por ejemplo sed y awk, utilizan estos lenguajes para buscar ciertas estructuras en el texto y, por ejemplo, remplazarlas con alguna otra cadena de caracteres.

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 Paso Paso Paso 1, 2, 3, 4, solicitar nmero. multiplicar nmero por dos. imprimir resultado de la operacin. etc,

Algunos ejemplos de lenguajes imperativos son: BASIC, C, C+ +, Java, Clipper, Dbase, C# y Perl.

Generaciones de los Lenguajes

Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con vlvulas, transistores y circuitos integrados) estn muy claras, la cuarta (circuitos integrados a gran escala) es ms discutible.

Algo parecido ha ocurrido con la programacin de los ordenadores (el software), que se realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo est de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de hardware, pero s de forma aproximada, y son las siguientes:

Primera generacin: Los primeros ordenadores se programaban directamente en cdigo binario, que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio cdigo, por esa razn se llama lenguaje de mquina.

Segunda generacin: Los lenguajes simblicos, as mismo propios de la mquina, simplifican la escritura de las instrucciones y las hacen ms legibles.

Tercera generacin: Los lenguajes de alto nivel sustituyen las instrucciones simblicas por cdigos independientes de la mquina, parecidas al lenguaje humano o al de las Matemticas.

Cuarta generacin: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generacin para la programacin orientada a objetos.

Quinta generacin: se llama as a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japons de la quinta generacin el nombre ha cado en desuso.

Historia y Caractersticas de algunos Lenguajes

Ada Lenguaje de programacin diseado por Jean Ichbiah de Cii Honeywell Bull por encargo del Departamento de Defensa de los EE.UU. para unificar el uso de los lenguajes de programacin en los proyectos que le fuesen entregados. Es un lenguaje diseado con la seguridad en mente y es multipropsito, pudiendo llegar desde la facilidad de Pascal a la flexibilidad de C pero con una filosofa orientada a la reduccin de errores. Su nombre conmemora a la condesa Ada Lovelace, hija de Lord Byron, a quien se considera la primera programadora de la Historia, por su relacin con Charles Babbage, creador de la mquina analtica. El Departamento de Defensa de los Estados Unidos (DoD) y los ministerios equivalentes de varios

pases europeos exigen la utilizacin de este lenguaje en los proyectos realizados bajo su patrocinio. Tambin es usado en otros entornos en los que tambin se necesita una gran seguridad como la gestin del trfico areo (en empresas como Boeing o la espaola Indra). Ada se dise de manera que permita evitar los errores comunes y difciles de descubrir. Esto puede hacer que sea muy irritante para los programadores principiantes. Hasta la fecha la ISO ha publicado dos ediciones del estndar de Ada: la original Ada 83 que inclua conceptos novedosos como las excepciones y la programacin genrica; y la revisin Ada 95, que entre otras cosas aadi la capacidad de herencia para completar sus caractersticas de lenguaje OOP. Un compilador de Ada muy usado es GNAT, originalmente desarrollado por la Universidad de Nueva York y mantenido en la actualidad por Ada Core Technologies. Est basado en la tecnologa de GCC y es software libre.

Ejemplo: Hola Mundo en Ada es:

with Ada.Text_IO; use Ada.Text_IO;

procedure Hola_Mundo is begin Put_Line ("Hola Mundo"); end;

Aqu abajo hay un ejemplo ms elaborado (funcin de Ackermann) de cdigo fuente escrito en Ada, para mostrar sus rasgos principales. with Ada.Command_Line; use Ada.Command_Line; with Ada.Text_Io; use Ada.Text_Io;

procedure Ackermann is function ack (x : integer; y: integer) return integer is begin if x = 0 then return y + 1; elsif y = 0 then return ack(x-1,1); else return ack(x-1,ack(x,y-1)); end if; end ack; x,y,a : integer; begin if Argument_Count = 2 then x := Integer'Value (Argument(1)); y := Integer'Value (Argument(2)); elsif Argument_Count = 1 then

x := 3; y := Integer'Value (Argument(1)); else x := 3; y := 3; end if; a := ack (x,y); Put ("Ack (" & Integer'Image (x) & ","); Put_Line (Integer'Image (y) & ") = " & Integer'Image (a)); end Ackermann;

Podemos observar que: La sintaxis, inspirada en Pascal, es bastante legible incluso para personas que no conozcan el lenguaje. Es un lenguaje que no escatima en la longitud de las palabras clave, en la filosofa de que un programa se escribe una vez, se modifica decenas de veces y se lee miles de veces (legibilidad es ms importante que rapidez de escritura). Todo es case-insensitive. Ya que todo el entorno Unix es casesensitive, a algunos programadores de Unix no les gusta este rasgo de Ada. En este caso, todo el programa es un solo procedimiento, que puede contener subprogramas (procedimientos o funciones) (en este caso: la funcin ack). Cada sentencia se cierra con un end qu_cerramos. Es un modo de evitar errores y facilitar la lectura. No es necesario hacerlo

en el caso de subprogramas, aunque todos los manuales lo aconsejan y casi todos los programadores de Ada lo hacen. Se asigna un valor con :=, se comparan dos valores con =. A los programadores de C les puede confundir este rasgo inspirado en Pascal. La sintaxis de atributos es objeto'atributo (o tipo'atributo) (nota: esto slo aplica a los objetos predefinidos, ya que no es el concepto de atributo tpico de OOP). Se distingue entre "procedimientos" (subrutinas que no devuelven ningn valor pero pueden modificar sus parmetros) y "funciones" (subrutinas que devuelven un valor y no modifican los parmetros). La mayora de lenguajes de programacin no hacen esta distincin, sin embargo las funciones de Ada favorecen la seguridad al reducir los posibles efectos colaterales, pues no tienen parmetros in out.

Smalltalk Diseado por Alan Kay durante los aos setenta en el Palo Alto Reasearch Institute de Xerox (conocido como Xerox Parc). Smalltalk era un elemento de la primera computadora personal con interfaz grfica el "Alto" (que nunca fue llevado al mercado pero de cuyas ideas naci el Macintosh). Smalltalk es considerado el primero de los lenguajes orientados a objetos (OOP). En Smalltalk TODO es un objeto.. aun los nmeros enteros. Smalltalk se bas en ideas de Simula (un lenguaje de simulaciones). Pero Smalltalk no es meramente un lenguaje, sino un entorno completo, prcticamente un sistema operativo que se ejecuta encima de una "mquina virtual". Esto asegura su mxima portabilidad entre plataformas. A pesar de ser un lenguaje muy simple, muy poderoso, y que promueve buenas prcticas de programacin, Smalltalk (hasta el 2002) no haba llegado a ser un lenguaje muy popular. Esto se debe a la poca aceptacin de lenguajes interpretados en los aos 1980 y 1990. A pesar de esto algunas empresas como Digitalk, VisualWorks e IBM llegaron a tener relativo xito con la plataforma como una herramienta de desarrollo rpido que competa contra herramientas

como PowerBuilder y en menor grado contra VisualBasic que eran muy populares en los aos 80 y 90. En 1995, Sun Microsystems lanz Java que es un lenguaje fuertemente influenciado por Smalltalk. Un lenguaje que popularizara el concepto de lenguajes interpretados con recolectores de basura. Ejemplos de Smalltalk: En Smalltalk todo es un objeto, y a un objeto le enviamos mensajes. Por ejemplo: 1+1 Significa que al objeto "1" le enviamos el mensaje "+" con el parmetro "1". Este ejemplo entonces resulta en el valor "2".

Java Plataforma de software desarrollada por Sun Microsystems. Esta plataforma ha sido desarrollada de tal manera que los programas desarrollados para ella puedan ejecutarse de la misma forma en diferentes tipos de arquitecturas y dispositivos computacionales. La plataforma Java consta de tres partes:

El lenguaje de programacin Mquina virtual de Java API Java

Originalmente llamado OAK por Ingenieros de Sun Microsystems, Java fue diseado para correr en computadoras embebidas. Sin embargo, en 1995, dada la atencin que estaba produciendo la Web, Sun Microsystems la distribuy para sistemas operativos tales como Microsoft Windows. El lenguaje mismo adopta la sintaxis de C++, pero su funcionamiento es muy similar al de Smalltalk. Incorpora sincronizacin y manejo de tareas en el lenguaje mismo (similar a Ada) e incorpora interfaces como un mecanismo alternativo a la herencia mltiple de C++. A fines del siglo XX, Java lleg a ser el lenguaje de mayor acogida para programas de servidor. Utilizando una tecnologa llamada JSP (similar a ASP de Microsoft), se hiz muy fcil escribir pginas dinmicas para sitios de Internet. Sumado a esto, la tecnologa de JavaBeans, al incorporarse con JSP, permita utilizar el patrn MVC (Modelo-Vista-Controlador) que ya tanto se haba aplicado a interfaces grficas.

Java lleg a ser extremadamente popular cuando Sun Microsystems introdujo la plataforma y el modelo de programacin J2EE (Java 2 Enterprise Edition). Este modelo permite una separacin entre la presentacin de los datos al usuario (JSP o Applets), el modelo de datos (EJB), y el control (Servlets). Enterprise Java Beans (EJB) que es una tecnologa de objetos distribudos que pudo lograr el sueo de muchas empresas como Microsoft e IBM de crear una plataforma de objetos distribudos con un monitor de transacciones. Con este nuevo estndar, empresas como BEA, IBM, Sun Microsystems, Oracle y otros crearon nuevos "servidores de aplicaciones" que tuvieron gran acogida en el mercado. Adems de programas del servidor, Java permite escribir programas de interfaz grfica o textual. Adems se pueden correr programas de manera incorporada o embebida en los navegadores web de Internet, aunque esto nunca lleg a popularizarse como se esperaba en un principio. Los programas en Java generalmente son compilados a un lenguaje intermedio o bytecode, y luego interpretados por una mquina virtual (JVM). Esta ltima sirve como una plataforma de abstraccin entre la mquina y el lenguaje permitiendo que se pueda "escribir el programa una vez, y correrlo en cualquier lado". Tambin existen compiladores nativos de Java, tanto comercial como libre. El compilador GCC de GNU compila Java a cdigo de mquina con algunas limitaciones al ao 2002. Ejemplo: import javax.swing.JFrame; import javax.swing.JLabel; public class HolaMundo extends javax.swing.JFrame { public static void main(String[] args) { System.out.println("Vamos a crear una ventana que ponga \"HolaMundo\""); new HolaMundo(); } public HolaMundo() { super("HolaMundo"); JLabel etiqueta = new JLabel("HolaMundo"); etiqueta.setHorizontalAlignment(javax.swing.SwingConstants.CEN TER);

getContentPane().add(etiqueta); setSize(400,200); addWindowListener( new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { System.exit(0); } } ); setVisible(true); } }

C Ms Ms C++ (pronunciado "C plus plus" o "C ms ms", por algunos programadores de habla hispana) es un lenguaje de programacin, diseado a mediados de los ochenta, por Bjarne Stroustrup, como extensin del lenguaje de programacin C. Es un lenguaje hbrido, que se puede compilar y resulta ms sencillo de aprender para los programadores que ya conocen C. Actualmente existe un estndar, denominado ISO C++, al que se han adherido la mayora de los fabricantes de compiladores ms modernos. Existen tambin algunos intrpretes como ROOT (http://root.cern.ch/) (enlace externo). Las principales caractersticas del C++ son abstraccin (encapsulacin), el soporte para programacin orientada a objetos (polimorfismo) y el soporte de plantillas o programacin genrica (Templates). Las plantillas se las define de la manera siguiente: template <parmetros> declaracin X y se las instancia con X<parmetros>. Pero aade otra serie de propiedades que se encuentran ms difcilmente en otros lenguajes de alto nivel:

Posibilidad de redefinir los operadores Indentificacin de tipos en tiempo de ejecucin (RTTI)

El nombre C++ fue propuesto por Rick Masciatti en el ao 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientfico. Antes se haba usado el nombre "C con clases". En el C++, "C++" significa "uno ms de C" y se refiere a que C++ es una extensin del C. Algunos dicen que "C++" todava significa "C", porque "++" en este caso es el operador de la postincrementacin, es decir, aumenta el valor de la expresin a la que se refiere, despus, en las instrucciones siguientes. Por esto el valor de la expresin en este momento permanece original. Aqu hay un programa de ejemplo escrito en C++: #include <iostream> int main() { std::cout << "Hola mundo!" << std::endl; } Pascal Pascal es un lenguaje de programacin de alto nivel, desarrollado por Niklaus Wirth. Se convirti en uno de los lenguajes extensamente usados en lo cursos de introduccin a la programacin, pues fue bien recibido como lenguaje de enseanza para estudiantes universitarios. Pascal es un lenguaje con tcnicas de programacin estructurada, dicha programacin hace programadores disciplinados. Sus primeras versiones datan de 1970. Es un lenguaje de programacin estructurado creado por Niklaus Wirth, un profesor del Instituto tecnolgico de Zurich, que lo cre pensando en un lenguaje didctico que ensease la programacin como "una disciplina sistemtica basada en determinados conceptos fundamentales". Estos conceptos ms tarde se tornaran motivo de controversia entre los que creen que este lenguage tiene utilidad limitada a los medios academicos, como Brian W. Kernighan. A partir de los aos setenta se convirti en el sucesor de ALGOL en el entorno universitario. Pascal permite construir programas muy legibles. Wirth es tambin autor del lenguaje Modula-2 y de Oberon. El lenguaje de programacin Delphi es una versin orientada a objetos moderna del lenguaje Pascal y es ampliamente utilizada en la industria de software.

Ejemplo: PROGRAM Ejemplo(INPUT, OUTPUT); FUNCTION PreguntaNombre:STRING; VAR nombre:STRING; BEGIN REPEAT WRITELN('Ingresa tu nombre:'); READLN(nombre); UNTIL nombre <> ''; PreguntaNombre := nombre; END; PROCEDURE Saluda; VAR nombre:STRING; BEGIN nombre := PreguntaNombre; IF nombre = 'wirth' THEN WRITELN('Hola seor Wirth!'); ELSE WRITELN('Hola '+nombre); END; BEGIN Saluda; END. En la ciencia de la computacin, Pascal es uno de los hitos de lenguajes de programacin el cual tiene definido la programacin de computadora y esta todava en uso hoy en da. Niklaus Wirth lo desarrollo para hacer posible la programacin estructurada que seria mas fcil para un compilador para procesar. Pascal se baso en el lenguaje de programacin Algol y su nombre se debe en honor del matemtico Blaise Pascal. Wirth tambin desarrollo Modula-2 y Oberon, lenguajes similares a Pascal el cual tambin soporta programacin orientada a objetos. Caractersticas nicas

A diferencia de lenguajes de programacin descendientes de C, Pascal utiliza := para asignamiento en vez de =. Esto es una ventaja en diferenciar comparaciones y asignamientos. En C = = es comparacin, pero = es una asignacin. Esas pueden ser fciles de confundir resultando en una lnea de asignamiento en vez de comparacin. Tambin = tiene siempre siendo comparacin en matemticas, as a cambiar el significado en un lenguaje de programacin resulta en confusin. Esta sintaxis conduce a muchos errores [bugs] difciles de rastrear en cdigo C. Desde que Pascal no permite asignamientos en lnea y utiliza sintaxis distinta para asignamientos y comparaciones, esto no sufre de esos errores. Otra mayor diferencia es que Pascal se determina el tipo fuertemente. Esto significa que toda variable debe ser definida con un tipo especifico antes que puedan ser usadas. Tambin, asignamientos de variable incompatibles no son permitidas sin un tipo explicito. Esto previene errores comunes donde variables son usadas incorrectamente por que el tipo es desconocido. Esto tambin aliviana la necesidad de notacin hngara - la practica de nombres de variables sufijos con tipo- identificando letras. Implementaciones Primeros acercamientos (mas notables en UCSD p-System) trasladar cdigo Pascal dentro de una representacin de p-Code de mquina independiente. Este cdigo intermediario fue entonces interpretado por un programa especifico a cada arquitectura. Como una consecuencia, solo el interprete pequeo tuvo que ser portada a muchas arquitecturas. En los 1980s Anders Hejlsberg escribi el compilador Blue Label Pascal para la Nascom-2. Mas tarde el fue a trabajar para Borland y rescribi su compilador que se convirti en Turbo Pascal para la IBM PC. Este nuevo compilador se vendi por $49, el cual fue mucho menos que el precio que Hejlsberg originalmente solicito para el compilador Blue Label Pascal. El barato compilador de Borland tubo una larga influencia en la comunidad de Pascal que comenz concentrndose principalmente en el IBM PC a finales de los 80. Muchos aficionados a la PC en busca de un estructurado reemplazo para el BASIC utilizo este producto. Turbo Pascal, siendo disponible solo en una arquitectura, trasladada directamente al cdigo de mquina del Intel 8088, hacindola mucho mas rpida que esquemas interpretados. Durante los 90s compiladores que pudieron redesignar a diferentes arquitecturas de hardware se convirtieron mas comn. Esto permiti para Pascal traduccin a cdigo de maquina nativo que fue al mismo tiempo fcil portar a hardware nuevo.

Con Turbo Pascal versin 5 Borland agreg orientacin a objetos a Pascal. Sin embargo, Borland despus decidi caracterstica orientado a objetos mas elaborada, y volvi a empezar en Delphi usando el proyecto estndar Object Pascal propuesto por Apple como una base. (Este proyecto de Apple no es un estndar formal an) Borland tambin llamo este Object Pascal en las primeras versiones de Delphi, pero cambio el nombre a lenguaje de programacin Delphi en sus ultimas versiones. Los primeros cambios comparando a las viejas extensiones OOP fueron una basada-referencia modelo objeto, constructores y destructores virtuales, y propiedades. Hay otros compiladores implementando este dialecto: vease lenguaje de programacin Delphi. Compiladores disponibles publicamente Varios compiladores de Pascal estn disponibles para el uso del publico en general:

Compilador GNU Pascal Compiler (GPC) es un adicional front-end para el GNU Compiler Collection (GCC), y esta escrito en C. Distribuido libremente bajo la licencia GNU General Public License. El soporte de Borlan/Turbo Pascal est sin embargo algo limitado. FreePascal esta escrito en Pascal (asi que se compilo este mismo), y esta apuntado a proveer un conveniente y poderoso compilador. Tambin distribuido libremente bajo la licencia GNU GPL. Este puede mezclar Turbo Pascal con cdigo Delphi, y soporta muchas plataformas y sistemas operativos. Turbo Pascal fue el compilador Pascal dominante para PCs durante los 80s y a principios de los 90s,popular ambos debido a sus extensiones poderosas y los tiempos de la compilacin sumamente bajos. Actualmente, versiones viejas de TP (hasta la 5.5) estn disponibles para descargarlo gratuitamente desde el sitio de Borland (se requiere registracin) Delphi es un producto de Borland RAD (Rapid Application Development). Utiliza el lenguaje de programacin Delphi, descendiente de Pascal, para crear aplicaciones para la plataforma windows. La ultima versin tambin soporta compilacin de la plataforma .NET.

Kylix es la mas nueva versin de Borland reiterando la rama de Pascal de sus productos. Esta es la descendiente de Delphi, con soporte para el sistema operativo Linux y una libreria object mejorada. El compilador y el IDE estn disponibles para uso no comercial. El compilador (pero no la librera o la IDE) es supuestamente a convertirse en software Open Source pronto algn da

Crtica pasada Mientras muy popular (aunque mucho mas en los 80s y principios de los 90s que en el tiempo de su escritura), primeras versiones de Pascal han sido extensamente criticadas por ser impropio para "serio" uso fuera de enseanza. Brian Kernighan, co-creador de el lenguaje de programacin C, delineo su mas notables criticas de Pascal como a principios como en 1981, en su papel Why Pascal Is Not My Favorite Programming Language.Desde este tiempo Pascal ha continuado evolucionando y la mayora de sus puntos no aplica a las implementaciones actuales. Muchas personas ignorantes todavia subscriben a la creencia vieja que Pascal no es para "seria" programacin y no comprende los beneficios que actualmente ofrece. Este estigma, mas de cualquier deficiencia real, es la obligacion mas grande de Pascal. Hola mundo Un ejemplo comun de una sintaxis de lenguaje es el programa Hola mundo PROGRAM Holamundo; BEGIN WriteLn('Hola mundo!'); END. Todos los programas comienzan con la palabra clave "Program", y un bloque de cdigo es indicado con el "Begin"/"End" . Case es ignorado en el lenguaje Pascal. Punto y coma separa las declaraciones, y el periodo termina el programa (o unidad). Para algunos compiladores la lnea de Program es opcional. Delphi

Delphi es un entorno de programacin visual basado en una versin moderna del lenguaje de programacin Pascal. Como entorno visual, la programacin en Delphi consiste en disear las pantallas de que se compone el programa colocando todos sus componentes (botones, campos de texto, etc.), asociando despus cdigo a ellos. El lenguaje utilizado por Delphi es una extensin de Pascal denominada Object Pascal, que bsicamente aade al Pascal tradicional soporte para la programacin orientada a objetos (habitualmente llamada POO). Adems de poder utilizar en un programa los controles estndar de los programas Windows (botones, etc.), es posible crear controles nuevos, denominados componentes. En internet existe un gran nmero de componentes, tanto gratuitos como comerciales, disponibles para los programadores a los que no les basten los que vienen ya con el programa. Delphi es una herramienta comercial para Windows, cuyo fabricante es la empresa norteamericana Borland. Existe una versin de Delphi para sistemas UNIX y LINUX, denominada Kylix (de la cual existe un version libre, pero limitada). Existe un desarrollo de la comunidad del software libre que intenta producir una versin multiplataforma y completamente libre de Delphi llamado Lazarus (http://www.lazarus.freepascal.org/). El nombre proviene del Orculo de Delfos. Ocaml El lenguaje Objective CAML, tambin llamado Ocaml u O'Caml, es un lenguaje de programacin avanzado de la familia de los lenguajes ML, desarrollado y distribuido por el INRIA en Francia. Ocaml admite los paradigmas de programacin imperativa, programacin funcional y programacin orientada a objetos. Ocaml nace de la evalucin del lenguaje CAML (http://www.pps.jussieu.fr/~cousinea/Caml/caml_history.html), abreviacin de Categorical Abstract Machine Language, al integrarse la programacin con objetos. El cdigo fuente en Ocaml se compila en cdigo para una mquina virtual o en cdigo nativo para diferentes arquitecturas que incluyen IA32, IA64, PowerPC, AMD64, Sparc, Alpha, HP/PA, MIPS y StrongARM. Este ltimo compilador produce cdigo comparable en eficiencia al producido por compiladores como el del lenguaje C/C++ (http://shootout.alioth.debian.org/). Ocaml dispone de un anlisis de tipos esttico con inferencia de tipos, valores funcionales de primera clase, polimorfismo paramtrizado, llamada por

patrones, manejo de excepciones, recoleccin de basura y otras caractersticas avanzadas (* Manipulacin de listas *) (* Listas genricas *) (* Longitud de una lista *) let rec long = function |[ ] -> 0 |x::xs -> 1 + long xs;; (* Ordenamiento por insercin *) (* dada una relacin de orden *) let rec ordenar = function |[ ] -> [ ] |x::xs -> insertar x (ordenar xs) and insertar e = function |[ ] -> [e] |x::xs -> if x > e then e::x::xs else x::(insertar e xs);; # let l = ["La"; "vida"; "es"; "un"; "largo"; "y"; "tranquilo"; "rio"];; - : string list = ["La"; "vida"; "es"; "un"; "largo"; "y"; "tranquilo"; "rio"] # long l;; - : int = 8 # ordenar l;; - : string list = ["La"; "es"; "largo"; "rio"; "tranquilo"; "un"; "vida"; "y"] (* Arboles *) (* Definicin de un rbol binario, para cualquier tipo 'a *) type 'a arbol = AVac | Nodo of ('a arbol * 'a * 'a arbol);; let a = Nodo(AVac, 4, Nodo(AVac, 2, AVac));;

(* Altura del rbol *) let rec altura = function |AVac -> 0 |Nodo(i, _, d) -> 1 + max (altura i) (altura d) ;; # altura a;; - : int = 2 Haskell Hacia 1950, John McCarthy dise el lenguaje LISP (List Processing) que utilizaba las listas como tipo bsico y admita funciones de orden superior. Este lenguaje se ha convertido en uno de los lenguajes ms populares en el campo de la inteligencia Artificial. Sin embargo, para que el lenguaje fuese prctico, fue necesario incluir caractersticas propias de los lenguajes imperativos como la asignacin destructiva y los efectos laterales que lo alejaron del paradigma funcional. Actualmente ha surgido una nueva corriente defensora de las caractersticas funcionales del lenguaje encabezada por el dialecto Scheme, que aunque no es puramente funcional, se acerca a la definicin original de McCarthy. En 1964, Peter Landin dise la mquina abstracta SECD para mecanizar la evaluacin de expresiones, defini un subconjunto no trivial de Algol-60 mediante el clculo lambda e introdujo la familia de lenguajes ISWIM (If You See What I Mean) con innovaciones sintcticas (operadores infijos y espaciado) y semnticas importantes. En 1978 J. Backus (uno de los diseadores de FORTRAN y ALGOL) consigui que la comunidad informtica prestara mayor atencin a la programacin funcional con su artculo Can Programming be liberated from the Von Neumann style? en el que criticaba las bases de la programacin

imperativa tradicional mostrando las ventajas del modelo funcional. Adems Backus dise el lenguaje funcional FP (Functional Programming) con la filosofa de definir nuevas funciones combinando otras funciones. A mediados de los 70, Gordon trabajaba en un sistema generador de demostraciones denominado LCF que inclua el lenguaje de programacin ML (Metalenguaje). Aunque el sistema LCF era interesante, se observ que el lenguaje ML poda utilizarse como un lenguaje de propsito general eficiente. ML optaba por una solucin de compromiso entre el modelo funcional y el imperativo ya que, aunque contiene asignaciones destructivas y Entrada/Salida con efectos laterales, fomenta un estilo de programacin claramente funcional. Esa solucin permite que los sistemas ML compitan en eficiencia con los lenguajes imperativos. A mediados de los ochenta se realiz un esfuerzo de estandarizacin que culmin con la definicin de SML (Stndar ML). Este lenguaje es fuertemente tipado con resolucin esttica de tipos, definicin de funciones polimrficas y tipos abstractos. Actualmente, los sistemas en SML compiten en eficiencia con los sistemas en otros lenguajes imperativos y han aparecido proyectos como Fox Project 1994 [HL94] que pretenden desarrollar un nuevo lenguaje ML2000 con subtipos y mdulos de orden superior. Al mismo tiempo que se desarrollaban FP y ML, David Turner (primero en la Universidad de St. Andrews y posteriormente en la Universidad de Kent) trabajaba en un nuevo estilo de lenguajes funcionales con evaluacin perezosa y definicin de funciones mediante encaje de patrones. El desarrollo de los lenguajes SASL (St. Andrews Static Language), KRC (Kent Recursive Calculator) y Miranda tena como objetivo facilitar la tarea del programador incorporando facilidades sintcticas

como las guardas, el encaje de patrones, las listas por comprehensin y las secciones. A comienzos de los ochenta surgieron una gran cantidad de lenguajes funcionales debido a los avances en las tcnicas de implementacin. Entre stos, se podran destacar Hope, LML, Orwell, Erlang, FEL, Alfl, etc. Esta gran cantidad de lenguajes perjudicaba el desarrollo del paradigma funcional. En septiembre de 1987, se celebr la conferencia FPCA en Portland, Oregon, en la que se discutieron los problemas que creaba esta proliferacin. Se decidi formar un comit internacional que disease un nuevo lenguaje puramente funcional de propsito general denominado Haskell [Hud92]. Con el lenguaje Haskell se pretenda unificar las caractersticas ms importantes de los lenguajes funcionales. como las funciones de orden superior, evaluacin perezosa, inferencia esttica de tipos, tipos de datos definidos por el usuario, encaje de patrones y listas por comprehensin. Al disear el lenguaje se observ que no exista un tratamiento sistemtico de la sobrecarga con lo cual se construy una nueva solucin conocida como las clases de tipos. El lenguaje incorporaba, adems, Entrada/Salida puramente funcional y definicin de arrays por comprehensin. En Mayo de 1996 apareca la versin 1.3 del lenguaje Haskell [Has95] que incorporaba, entre otras caractersticas, mnadas para Entrada/Salida, registros para nombrar componentes de tipos de datos, clases de constructores de tipos y diversas libreras de propsito general. Posteriormente, surge la versin 1.4 con ligeras modificaciones. En 1998 se ha decidido proporcionar una versin estable del lenguaje, que se denominar Haskell98 a la vez que se contina la investigacin de nuevas caractersticas.

La principal informacin sobre el lenguaje Haskell puede consultarse en la direccin: http://www.haskell.org

Lisp Despus de Fortran es el segundo lenguaje de programacin de alto nivel. LISP fue creado por John McCarthy y sus colaboradores en el MIT. El elemento fundamental en LISP es la lista, en el sentido ms amplio del trmino, pues tanto los datos como los programas son listas. De ah viene su nombre, pues LISP es un acrnimo de "LIStProcessing". Los lenguajes de este tipo se llaman "aplicativos" o "funcionales", porque se basan en la aplicacin de funciones a sus datos. En LISP se distinguen dos tipos fundamentales de elementos:

tomos: son datos elementales y pueden pertenecer a varios tipos: nmeros, caracteres, cadenas de caracteres y smbolos. Listas: son secuencias de tomos o de listas encerradas entre parntesis. Adems, existe una lista especial, "nil", que es la lista nula, que no tiene ningn elemento.

En LISP, una funcin se expresa como una lista. Algunas de las funciones predefinidas de LISP tienen smbolos familiares (+ para la suma, * para el producto), pero otras son ms exticas, especialmente dos que sirven precisamente para manipular listas, descomponindolas en sus componentes. Sus nombres ("car" y "cdr") son un poco extraos, reliquias de tiempos pasados y de la estructura de los ordenadores de segunda generacin, "car" devuelve la cabeza de una lista y "cdr" su cola o resto. LISP sigue una filosofa de tratamiento no-destructivo de los parmetros, de modo que la mayora de las funciones devuelven un lista resultado de efectuar alguna transformacin sobre la que recibieron, pero sin alterar esta ltima. Uno de los motivos por los que LISP es especialmente adecuado para la IA es el hecho de que el cdigo y los datos tengan el mismo tratamiento (como listas); esto hace especialmente sencillo escribir programas capaces de escribir otros programas segn las circunstancias.

Un lenguaje de programacin derivado del Lisp es el Logo. Sin entrar en detalles, podra decirse que Logo es Lisp sin parntesis y con operadores aritmticos infijos. Ejemplo de cdigo en Lisp (defun fact (n) (if (<= n 1) 1 (* n (fact (- n 1))))) (defun fibo (n) (if (<= n 2) 1 (+ (fibo (- n 1)) (fibo (- n 2))))) Prolog La Programacin Lgica es un Paradigma de Programacin basado en la Lgica. Los programas construidos un lenguaje lgico estn construidos nicamente por expresiones lgicas, es decir, que son ciertas o falsas, en oposicin a un expresin interrogativa (una pregunta) o expresiones imperativas (una orden). Un ejemplo de lenguaje lgico es Prolog (Programacin lgica).

Prolog, proveniente del ingls Programming in Logic, es un lenguaje lgico bastante popular en el medio de investigacin en Inteligencia Artificial. Prolog es un lenguaje muy diferente, tanto de los imperativos como Fortran, Pascal, C etc, como de los funcionales como Lisp. En todos los mencionados, las instrucciones se ejecutan normalmente en orden secuencial, es decir, una a continuacin de otra, en el mismo orden en que estn escritas, que slo vara cuando se alcanza una instruccin de control (un bucle, una instruccin condicional o una transferencia).

En Prolog, las cosas son distintas: el orden de ejecucin de las instrucciones no tiene nada que ver con el orden en que fueron escritas. Tampoco hay instrucciones de control propiamente dichas. Para trabajar con este lenguaje, un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes clsicos.

Las instrucciones de Prolog se llaman "reglas o clusulas de Horn" y esencialmente pueden representarse as: "Hacer esto si se cumplen tales o cuales condiciones". Una instruccin se ejecutar automticamente en cualquier momento en que se cumplan las condiciones especificadas. Adems de las reglas, tambin se definen "factors" en la cual se aplicarn las reglas. Es decir, en Prolog, un programa consiste de una descripcin lgica de una teora y la computacin es la deduccin de la teora para una dada consulta.

Ejemplo:

%% %% declaraciones %% padrede('juan', 'maria'). % juan es padre de maria padrede('pablo', 'juan'). % pablo es padre de juan padrede('pablo', 'marcela'). padrede('carlos', 'debora'). % A es hijo de B si B es padre de A

hijode(A,B) :- padrede(B,A). % A es abuelo de B si A es padre de C y C es padre B abuelode(A,B) :- padrede(A,C), padrede(C, B). % A y B son hermanos si el padre de A es tambien el padre de B y si A y B no son lo mismo hermanode(A,B) :- padrede(C,A) , padrede(C,B), A <> B. % A y B son familiares si A es padre de B o A es hijo de B o A es hermano de B familiarde(A,B) :- padrede(A,B) ; hijode(A,B) ; hermanode(A,B). %% %% consultas %% % juan es hermano de marcela? ?- hermanode('juan', 'marcela'). si % carlos es hermano de juan? ?- hermanode('carlos', 'juan'). no % pablo es abuelo de maria? ?- abuelode('pablo', 'maria'). si % maria es abuelo de pablo? ?- abuelode('maria', 'pablo').

no

Perl Perl (Practical Extraction and Report Language) es un lenguaje de programacin desarrollado por Larry Wall (lwall at netlabs.com) a partir otras herramientas de UNIX como son: ed,grep,awk,c-shell, para la administracin de tareas propias de sistemas UNIX. No establece ninguna filosofa de programacin concreta. No se puede decir que sea orientado a objetos, modular o estructurado aunque soporta directamente todos estos paradigmas y su punto fuerte son las labores de procesamiento de textos y archivos. No es ni un compilador ni un intrprete, esta en un punto intermedio, cuando mandamos a ejecutar un programa en Perl, se compila el cdigo fuente a un cdigo intermedio en memoria que se optimiza como si se fuera a elaborar un programa ejecutable pero es ejecutado por un motor, como si se tratase de un interprete. Lenguaje de programacin basado en scripts portable a casi cualquier plataforma. Es muy utilizado para escribir CGIs. Lenguaje optimizado para el escaneo de texto arbitrario de ficheros. Es tambin un buen lenguaje para tareas de administracin de sistemas. Es un lenguaje con intencin de ser prctico en lugar de bonito. Satisface las tres virtudes del programador: flojera, impaciencia y petulancia. Segn el manual, Perl tambin significa Pathologically Eclectic Rubbish Lister. Resumen tcnico de PERL. PERL es un lenguaje de script de tipo BCPL (como TCL o PHP), muy semejante al AWK (de hecho est basado en l), de tipo estructurado con trazas de orientacin a objetos (no completamente soportado de forma directa), que permite el desarrollo rpido de aplicaciones y herramientas especialmente orientadas al tratamiento de textos y archivos, aunque actualmente tambin se utiliza incluso para entornos graficos, en combinacin con sistemas como Perl/TK o GTK. Bsicamente, es un lenguaje que se ha intentado que sea lo ms natural posible, lo que conlleva que en ocasiones nos encontremos estructuras poco habituales en un lenguaje de este tipo: print "hola" if $saludo == 1;

Destaca tambin el uso de variables especiales, muy habituales en los lenguajes de tipo script en los sistemas de tipo Unix. Estas variables permiten realizar una serie de operaciones sobre los datos y los archivos que aportan a PERL una flexibilidad y potencia enormes. Adems de variables que podemos encontrar en otros lenguajes como @ARGV (indica los parmetros con los que se ha llamado al programa) o %ENV (indica las variables de entorno de la aplicacin), podemos utilizar tambin variables como $_ (que representa el ltimo dato que lleg por la entrada estandar), o $/, que nos indica si PERL debe enviar el texto a la salida estandar inmediatamente (o al flujo de salida que le hayamos indicado previamente). PERL tiene implementadas las expresiones regulares, (regular expressions), lo que le da una potencia muy grande en el procesamiento de textos. PHP PHP (acrnimo de "PHP: Hypertext Preprocessor") es un lenguaje de programacin de scripts, concebido en el tercer trimestre de 1994 por Rasmus Lerdorf. Se utiliza principalmente para la programacin de CGIs para pginas web, destaca por su capacidad de ser embebido en el cdigo HTML. Adems, existe un compilador comercial (el Zend Optimizer). Las primeras versiones no distribuidas al pblico fueron usadas en un sus pginas web para mantener un control sobre quien consultaba su currculum. La primera versin disponible para el pblico a principios de 1995 fue conocida como "Herramientas para paginas web personales" (Personal Home Page Tools). Consistan en un analizador sintctico muy simple que solo entenda unas cuantas macros y una serie de utilidades comunes en las pginas web de entonces, un libro de visitas, un contador y otras pequeas cosas. PHP/FI El analizador sintctico fue reescrito a mediados de 1995 y fue nombrado PHP/FI version 2. FI viene de otro programa que Rasmus haba escrito y que procesaba los datos de formularios. As que combin las "Herramientas para pginas web personales", el "intrprete de formularios", aadi soporte para mSQL y PHP/FI vio la luz. PHP/FI creci a gran velocidad y la gente empez a contribuir en el cdigo.

PHP 3 PHP 3 fue creado por Andi Gutmans y Zeev Zuraski en 1997 reescribindolo completamente, despus de que encontraran que PHP/FI 2 tena pocas posibilidades para desarrollar su propia aplicacin comercial. Una de las mejores caractersticas de PHP 3 era su gran extensibilidad. Adems de proveer a los usuarios finales de una slida infraestructura para muchsimas bases de datos, protocolos y APIs. Las caractersticas de extensibilidad de PHP 3 atrajeron a docenas de desarrolladores a unirse y enviar nuevos mdulos de extensin. Sin duda, sta fue la clave del enorme xito de PHP 3 frente a otras tecnologas de generacin de pginas para la web. Todo el nuevo lenguaje fue liberado bajo un nuevo nombre, que borraba la implicacin de uso personal limitado que tena el nombre PHP/FI. Se llam 'PHP' a secas, con el significado de ser un acrnimo recursivo "PHP: Hypertext Preprocessor". A finales de 1998, PHP creci hasta una base de instalacin de decenas de millares de usuarios (estimados) y cientos de miles de sitios web informando de su instalacin. En su apogeo, PHP 3 estaba instalado en aproximadamente un 10% de los servidores web en Internet. PHP 4 Andi Gutmans y Zeev Suraski comenzaron a trabajar en la versin 4 reescribiendo el ncleo de PHP. Los objetivos de diseo fueron mejorar la ejecucin de aplicaciones complejas, y mejorar la modularidad del cdigo base de PHP. El nuevo motor, apodado 'Motor Zend' (comprimido de sus apellidos, Zeev y Andi), alcanz estos objetivos de diseo satisfactoriamente, y se introdujo por primera vez a mediados de 1999. PHP 4, basado en este motor, y acoplado con un gran rango de nuevas caractersticas adicionales, fue oficialmente liberado en Mayo de 2000. PHP 5 En junio de 2003 se liber la primera versin beta de PHP 5, con ms mejoras sobre el motor Zend y otras importantes caractersticas como el soporte de datos XML y adaptacin al protocolo IP versin 6. Usos de PHP Los principales usos del PHP son los siguientes:

Programacin de pginas dinmicas en servidores, habitualmente en combinacin con MySQL, aunque

cuenta con soporte nativo para otras muchas bases de datos, soportando adems ODBC, lo que le permite conectarse prcticamente a cualquier base de datos. En combinacin con PHP-GTK (la adaptacin para PHP del entorno grfico de Gimp), se pueden desarrollar aplicaciones de escritorio tanto para los sistemas operativos basados en Unix, como para Windows y Mac OS. Tambin puede ser utilizado como lenguaje de scripting en consola, al estilo de Perl, en Linux, Windows y Mac.

Ejemplo: Sigue un ejemplo de una aplicacin web sencilla, en PHP: <html> <head> <title>Ejemplo</title> </head> <body> <?php if (isset($_POST['muestra'])) { echo 'Hola, '.htmlentities($_POST['nombre']) .', tu comida favorita es:'. htmlentities($_POST['comida']); } else { ?> <form method="POST"> Cul es tu nombre? <input type="text" name="nombre"/> Cul es tu comida favorita? <select name="comida"> <option>Spaghetti</option> <option>Asado</option> <option>Pizza</option> </select> <input type="submit" name="muestra" value="Seguir"> </form> <?php } ?> </body>

</html> Podemos Observar que:

Las variables enviadas por un formulario por mtodo POST, son recibidas en el script dentro del arreglo $_POST, esto facilita tremendamente la obtencin de datos y funciona para todas las fuentes de informacin en una aplicacin web, desde cookies en el arreglo $_COOKIES, en el URL por $_GET, en la sesin por $_SESSION, del servidor y el cliente por $_SERVER. Sintaxis embebida dentro del HTML, lo que permite disear la pgina Web en un editor comn de HTML y aadir el cdigo dinmico dentro de las etiquetas <? php ?>. Operador de concatenacin '.', que facilita el trabajo con cadenas de texto. Numerosas funciones de utilidad para aplicaciones Web como la funcin htmlentitites(), que convierte los caracteres que tienen algun significado en el marcado HTML o que podran desplegarse errneamente en el navegador como acentos y diresis, en sus equivalentes en formato HTML .

Su primera pgina con PHP Comienze por crear un archivo llamado hola.php y colocarle en el "directorio raz" (DOCUMENT_ROOT) con el siguiente contenido: Ejemplo 2-1. Nuestro primer script PHP: hola.php <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php echo "<p>Hola Mundo</p>"; ?> </body>

</html> Utilice su navegador web para acceder al archivo, con la URL terminando en "/hola.php". Si est programando localmente este URL lucir algo como http://localhost/hola.php o http://127.0.0.1/hola.php pero esto depende de la configuracin de su servidor web. Aunque este tema est fuera del alcance de este tutorial, tambin puede ver las directivas DocumentRoot y ServerName en la configuracin de su servidor (en Apache, esto es httpd.conf). Si todo est configurado correctamente, el archivo ser analizado por PHP y el siguiente contenido aparecer en su navegador: <html> <head> <title>Ejemplo de PHP</title> </head> <body> <p>Hola Mundo</p> </body> </html> Note que esto no es como los scripts de CGI. El archivo no necesita ninguna clase especial de permisos para ser ejecutado. Piense en ellos como si fueran archivos HTML con un conjunto muy especial de etiquetas disponibles, y que hacen muchas cosas interesantes. Este programa es extremadamente simple, y no necesita usar PHP para crear una pgina como sta. Todo lo que hace es mostrar: Hola Mundo usando la sentencia echo(). Si ha intentado usar este ejemplo, y no produjo ningn resultado, preguntando si deseaba descargar el archivo, o mostr todo el archivo como texto, lo ms seguro es que PHP no se encuentra habilitado en su servidor. Pdale a su administrador que active esta funcin por usted, o use el captulo titulado Instalacin en el manual. Si est trabajando localmente, lea tambin el captulo dedicado a la instalacin, y asegrese de que todo est configurado apropiadamente. Si el problema contina, por favor use una de las muchas opciones para obtener ayuda con PHP. El objetivo de este ejemplo es demostrar cmo puede usar las etiquetas PHP. En este ejemplo usamos <?php para indicar el inicio de la etiqueta PHP. Despus indicamos la sentencia y abandonamos el modo PHP usando ?>. Puede salir de PHP y regresar cuantas veces lo desee usando este mtodo. Para

ms informacin, puede leer la seccin en el manual titulada Sintaxis bsica de PHP. Una nota acerca de editores de texto: Hay muchos editores de texto y Entornos Integrados de Desarrollo (IDE por sus siglas en Ingls) que puede usar para crear, editar, y organizar archivos PHP. Puede encontrar una lista parcial de stos en Lista de editores de PHP. Si desea recomendar un editor, por favor visite la pgina mencionada anteriormente, y comunique su recomendacin a las personas encargadas del mantenimiento para que lo incluyan en la lista. Contar con un editor que resalte la sintaxis de PHP puede ser de mucha ayuda. Una nota acerca de los procesadores de palabras: Los procesadores de palabras como "StarOffice", "Microsoft word" y "Abiword" no son buenas opciones para editar archivos de PHP. Si desea usar uno de stos programas para probar sus scripts, primero debe asegurarse de guardar el documento en formato de "Texto" puro, o PHP no ser capaz de ejecutar el script. Una nota acerca del "Bloc de Notas de Windows": Si desea escribir sus archivos PHP usando el "Bloc de Notas de Windows" o en algn otro editor de texto para Windows necesita asegurarse de que sus archivos sean guardados con la extensin .php (la mayora de editores de texto en Windows automticamente tratarn de aadir la extensin .txt a los archivos a menos que tome los siguientes pasos para prevenirlo). Cuando guarde sus archivos y el programa le pregunte qu nombre le desea dar al archivo, use comillas para indicar el nombre (es decir, "hola.php"). Una alternativa es, en la lista de opciones "Archivos de Texto *.txt", seleccionar la opcin "Todos los archivos *.*". Aqu puede escribir el nombre del archivo sin las comillas. Ahora que ha creado un pequeo script de PHP que funciona correctamente, es hora de trabajar con el script de PHP ms famoso; vamos a hacer una llamada a la funcin phpinfo() para obtener informacin acerca de su sistema y configuracin como las variables predefinidas disponibles, los mdulos utilizados por PHP, y las diferentes opciones de configuracin. Tomemos unos segundos para revisar esta informacin

SQL Siglas de Structured Query Language (Lenguaje Estructurado de Consultas). Es un lenguaje declarativo que ana caractersticas del lgebra y el Clculo Relacionales que nos permite lanzar consultas contra una Base de Datos para recuperar informacin de nuestro inters, almacenada en ella. Ejemplo: SQL SELECT Nombre From Tabl_fich_personales where Edad >=18; Muestra el Campo "Nombre" de todos los individuos mayores de 18 aos de la tabla "Tabl_fich_personales"

UML Lenguaje Unificado de Modelado (UML, por sus siglas en ingls, Unified Modelling Language) es el lenguaje de modelado de sistemas de software ms conocido en la actualidad; an cuando todava no es un estndar oficial, est apoyado en gran manera por la OMG. El UML cuenta con varios tipos de modelos, los cuales muestran diferentes aspectos de las entidades representadas. Tipos de modelo

Funcional: Muestra la funcionalidad del sistema desde el punto de vista del usuario, incluye: Diagramas de caso de uso Objetos: Muestra la estructura y la subestructura del sistema usando objetos, atributos, operaciones y asociaciones, incluye: o Diagramas de clase Dinmico: Muestra el comportamiento interno del sistema, incluye: o Diagramas de secuencia o Diagramas de actividad o Diagramas de estado
o

Ejemplo de diagrama de caso de uso: Este diagrama describe la funcionalida d (simplificada ) de un sistema de restaurante, el comenzal puede comer, tomar vino y pagar; solo el cocinero puede preparar la comida. Los casos de uso son los valos y las figuras con forma "humana" son los actores. La OMG define una notacin grfica para los casos de uso, pero se abstiene de definir algn formato escrito para describir los casos de uso en detalle; debido a esto algunas personas tienen el concepto errneo acerca de que un caso de uso es su notacin grfica, cuando es la descripcin escrita de escenarios la que da el verdadero valor al caso de uso. Ejemplo de diagrama de clases: