Sunteți pe pagina 1din 29

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Fundamentos de Lenguajes de Programacin o


Preliminares Lenguajes de Programacin o

Carlos Alberto Ram Restrepo rez


Programa Acadmico Ingenier de Sistemas e a Universidad del Valle, Cali, Colombia Escuela de Ingenier de Sistemas y Computacin, a o home page: http://eisc.univalle.edu.co/ carlos.a.ramirez@correounivalle.edu.co

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Contenido

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Contenido

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Contenido

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Contenido

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Contenido

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Lenguaje

Un lenguaje es un sistema de comunicacin. El lenguaje o permite abstraer y comunicar conceptos. Un lenguaje de programacin posibilita la comunicacion con o una mquina. a

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Programacin o

La programacin se dene como una actividad general del o hombre, que signica la accin de extender o cambiar la o funcionalidad de un sistema[VanRoy]. Programar es decirle a un computador (o a alguna mquina) a como realizar su trabajo. La programacin es una actividad de amplio espectro o realizada tanto por no especialistas como por especialistas. La programacin (de sistemas de software) consta de dos o partes esenciales: la ciencia y la tecnolog a.

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Lenguajes de programacin o

Un lenguaje de programacin es un lenguaje articial o diseado para expresar computaciones que pueden ser llevadas n a cabo por una mquina. a Conjunto de s mbolos y reglas sintcticas y semnticas. a a

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Contenido

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Historia de los lenguajes de programacin I o


Charles Babagge (Mquina Anal a tica) y Ada Lovelace (Mediados del siglo XIX). Konrad Zuse propuso el Clculo Plan en 1943. a Short Code de John Mauchly en 1949 (BINAC y UNIVAC I). A-0, A-1, A-2 entre 1951 y 1953 (UNIVAC). Fortran (FORmula TRANslator) por John Backus et al. en 1953. LISP (LISt Processor) por John McCarthy et al. en 1958. COBOL (COmmon Business Oriented Language) por Grace Hopper en 1959. ALGOL (ALGOrithmic Language) 60 en 1960.
Carlos Ram rez Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Historia de los lenguajes de programacin II o


APL (A Programing Language) por Kenneth Iverson(IBM), Simula por Ole Johan Dahl y Kristen Nygaard y SNOBOL (StriNg Oriented symBOlic Language) por los Laboratorios Bell en 1962. CPL (Combined Programming Languaje) en 1963. BASIC (Beginners All-purpose Symbolic Instruction Code) por Kurtz y PL/1 (Programming Language 1) de IBM en 1964. BCPL (Basic Combined Programming Language) por Martin Richards en 1967. ALGOL 68 y Logo por Danny Bobrow, Wally Feurzeig y Seymour Papert en 1968. C por Dennis Ritchie y Ken Thompson entre 1969 y 1973. Pascal por Wirth y SmallTalk en 1970.
Carlos Ram rez Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Historia de los lenguajes de programacin III o


Prolog (PROgrammation en LOGique) por Colmerauer, Roussel, y Kowalski en 1972. ML (Meta Language) por Robin Milner en 1973. Scheme por Guy L. Steele y Gerald Jay Sussman en 1975. SQL (Structured Query Language) en 1978. Ada por Jean Ichbiah et al. en 1983. C++ por Bjarne Stroustrup en 1983. Common Lisp en 1984. Eiel, Erlang, Perl, Tcl y Fl a nales de los 80s. Haskell (en honor a Haskell Curry) en 1990. Python, Lua, Java, Delphi, JavaScript, PHP, Rebol, Visual Basic, Mozart, entre otros durante los aos 90s. n C#, .NET, J#, Scala, Factor, entre otros apartir del ao n 2000.
Carlos Ram rez Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Contenido

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Paradigmas de programacin o

Los principales paradigmas de programacin son: o Declarativos (Funcional, Lgico, Por Restricciones) o Imperativo Orientado a Objetos Concurrente Orientado a aspectos Orientado a agentes

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Programacin Declarativa o

Una operacin es declarativa si siempre que es llamada con los o mismos argumentos retorna el mismo resultado. Una operacin declarativa es: o
Independiente (depende solo de sus argumentos) Sin estado (no hay memoria entre distintos llamados) Determinista (un llamado con los mismos argumentos da siempre el mismo resultado)

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Paradigma de Programacin Imperativa o

Orientado por la mquina. a Alto nivel. Esencial: Asignacin y secuenciacin. o o La programacin est dada en trminos del estado del o a e programa. Programa: Secuencia de instrucciones. Ejemplos: Fortran, Algol, Basic, C, Pascal.

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Paradigma de Programacin Funcional o

Basado en el clculo . a Manejo impl cito de la memoria. El concepto de funcin es fundamental. o Funciones son ciudadanos de primera clase (las funciones pueden ser parmetros o valores de retorno de otras a funciones). Programa: Conjunto de funciones + Aplicacin. o Ejemplos: Lisp, Haskell, Scheme, ML.

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Paradigma de Programacin Lgica o o

Basado en el clculo de predicados. a Mecanismo de demostracin automtica de teoremas. o a Esencial: Concepto de deduccin lgica. o o Programa: Conjunto de axiomas y un objetivo. Ejemplos: Prolog.

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Paradigma de Programacin Orientada a Objetos o

Se representa el mundo real mediante objetos y sus interacciones. Basado en el concepto computacional de objeto. Esencial: Concepto de objeto, herencia, mensaje. Programa: Conjunto de objetos y sus interacciones. Ejemplos: Smalltalk, Java, C++, Obliq, etc.

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Paradigma de Programacin por Restricciones o

Basado en el concepto de restriccin (un predicado o relacin o o lgica). o Esencial: Concepto de consecuencia lgica. o Esencial: Bsqueda en arboles y reduccin de dominios u o (distribucin y propagacin). o o Programa: Variables + Restricciones (Conjunto de Relaciones entre variables) + Estrategia de exploracin. o Ejemplos: CLP, Mozart.

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Paradigma de Programacin Concurrente o

Basado en la teor de concurrencia y clculos de procesos a a (Clculo , CCS, CCP). a Esencial: Mecanismos de comunicacin entre procesos. o Programa: Conjunto de procesos. Ejemplos: PICT, MWB.

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Paradigma de Programacin Orientada a Aspectos o

Modularidad de las aplicaciones y separacin de conceptos o (generalmente conceptos tcnicos y comunes a toda la e aplicacin). o Separacin de las funcionalidades comunes utilizadas en la o aplicacin de las funcionalidades propias de cada mdulo. o o Esencial: Concepto de aspecto (funcionalidad transversal). Ejemplos: AspectJ, Aspect, phpAspect, Aspyct AOP.

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Paradigma de Programacin Orientada a Agentes o


Se representa el mundo real mediante agentes y sus interacciones a travs de mensajes. e Basado en el concepto de agentes. Un agente es una entidad computacional situada en algn u entorno y que es capaz de ejecutar acciones autnomas en o dicho entorno con el f de cumplir sus objetivos de diseo. n n Hilo de ejecucin independiente, comunicacin por paso de o o mensajes, conocimiento parcial del entorno, mecanismo de toma de decisiones, reactividad, proactividad, habilidad social. Programa: Conjunto de agentes y sus interacciones. Ejemplos: JADE, JASON.

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Algunos Retos

Enfoques basados en componentes. Mecanismos de seguridad y de conabilidad, seguridad en hilos. Enfasis en movilidad y distribucin. Enfoques basados en o paradigmas y tecnolog actuales (computacin grid y cloud, as o Map and Reduce).

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Contenido

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Por qu estudiar los conceptos de lenguajes de e programacin? o


Incrementa la capacidad para expresar ideas. Ampl el espectro de conocimientos necesario para a seleccionar un lenguaje. Incrementa la habilidad para aprender nuevos lenguajes y paradigmas. Mejor entendimiento de como los lenguajes de programacin o estn implementados. a Mejor uso de los lenguajes de programacin que ya se o conocen. Progreso global de las ciencias computacionales.
Carlos Ram rez Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Preguntas

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

Conceptos Un poco de historia Perspectiva de los paradigmas de programacin o Motivacin del curso o

Prxima sesin o o

Repaso de Scheme. Relacin entre induccin y programacin (Capitulo 1 EOPL). o o o

Carlos Ram rez

Fundamentos de Lenguajes de Programacin o

S-ar putea să vă placă și