facultad de ciencias de la computacionagarces/descargas/lenguajes.pdfconocimiento dado en forma de...

31
Facultad de Ciencias de la Computación INTRODUCCIÓN A LA DISCIPLINA COMPUTACIONAL

Upload: others

Post on 16-Feb-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

Facultad de Cienciasde la Computación

INTRODUCCIÓN A LA DISCIPLINA COMPUTACIONAL

Page 3: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

Un conjunto no vacío y finito de símbolos, se conoce como alfabeto (Σ).

Una secuencia finita de símbolos de un determinado alfabeto se conoce como una palabra sobre dicho alfabeto.

Un lenguaje (L) es un conjunto de palabras.

Σ = {a, b, c, d, e, f, 1, 5, 6}.Palabras: abc1, df56, fab5, dec1.L = {abc1m df56m fab5, dec1}.

Σ = {0, 1}.Lenguaje: binario.

Page 4: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

¿Para quénecesito un lenguaje?

Para COMUNICARME

Page 5: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

El lenguaje de programación es el medio de comunicación entre el hombre y la máquina.

El modelo general de las computadoras desde que fue esbozado por Von Neuman, no ha cambiado mucho, mientras que la invención humana para proponer nuevos problemas a resolver, usando la computadora parece no tener límites.

Page 6: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

La lista de códigos que la máquina va a interpretar como instrucciones, describe las capacidades de programación que tenemos de ella; es el lenguaje más primitivo, depende directamente del hardware, y requiere del programador que conozca el funcionamiento de la máquina al más bajo nivel.

Los lenguajes más primitivos fueron los lenguajes de máquina. Esto, ya que el hardware se desarrolló antes del software, y además cualquier software finalmente tiene que expresarse en el lenguaje que maneja el hardware.

Page 7: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

Existen diferentes clasificaciones de los lenguajes de programación:

De acuerdo al nivel de abstracción.

En base a la forma de ejecución.

Según el paradigma de programación.

Page 8: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

NIVEL DE ABSTRACCINIVEL DE ABSTRACCIÓÓNN

Lenguajes de bajo nivel.

Lenguajes de alto nivel.

Page 9: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

Un lenguaje de programación de bajo nivel es aquel que es fácilmente trasladado a lenguaje de máquina. En general, se utiliza este tipo de lenguaje para programar controladores.

El lenguaje de más bajo nivel es, por excelencia, el lenguaje de máquina, éste consta de cadenas de números binarios (ceros y unos) y es el único que entendible de manera directa por los procesadores.

Todas las instrucciones preparadas de cualquier lenguaje de máquina tienen por lo menos dos partes: la operación (que dice a la computadora cuál es la función a realizar) y el operando (indica a la computadora dónde hallar o almacenar los datos y otras instrucciones que se van a manipular).

LENGUAJES DE BAJO NIVELLENGUAJES DE BAJO NIVEL

Page 10: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJES DE BAJO NIVELLENGUAJES DE BAJO NIVEL

A principios de la década de 1950, y con el fin de facilitar la labor de los programadores, se desarrollaron códigos nemotécnicospara las operaciones y direcciones simbólicas. La palabra nemotécnico se refiere a una ayuda para la memorización. Uno de los primeros paso fue sustituir los códigos de operación numéricos del lenguaje de máquina por símbolos alfanuméricos, que son los códigos nemotécnicos.

Los programas que traducen código simbólico al lenguaje de máquina se llaman ensambladores ("assembler", en inglés), porque son capaces de ensamblar el programa traducido a partir de varias piezas, procedimientos o subrutinas.

Page 11: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJES DE ALTO NIVELLENGUAJES DE ALTO NIVEL

A finales de los años 1950 surgió un nuevo tipo de lenguaje, debido al desarrollo de las técnicas nemotécnicas y las macroinstrucciones, los lenguajes de alto nivel. A menudo estos lenguajes están orientados hacia una clase determinada de problemas de proceso.

A diferencia de los programas de ensamble, los programas de alto nivel se pueden utilizar con diferentes marcas de computadoras sin tener que hacer modificaciones considerables, reduciendo el costo de la reprogramación cuando se adquiere un equipo nuevo.

Page 12: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

Otras de las ventajas de los lenguajes de alto nivel son:

Son más fáciles de aprender que los lenguajes ensambladores.

Se pueden escribir más rápidamente.

Permiten tener mejor documentación.

Son más fáciles de mantener.

Un programador que sepa escribir programas en uno de estos lenguajes no está limitado a utilizar un solo tipo de máquina.

LENGUAJES DE ALTO NIVELLENGUAJES DE ALTO NIVEL

Page 13: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

FORMA DE EJECUCIFORMA DE EJECUCIÓÓNN

Lenguajes compilados.

Lenguajes interpretados.

Page 14: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJES COMPILADOSLENGUAJES COMPILADOS

Un compilador es un programa cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).

Al utilizar un lenguaje compilado, el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que, después de haber compilado el programa, ya no aparezcan errores en el código.

Page 15: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJES INTERPRETADOSLENGUAJES INTERPRETADOS

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel.

En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos.

No se graba el código objeto para utilizarlo posteriormente.

Page 16: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJES INTERPRETADOSLENGUAJES INTERPRETADOS

El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quieren agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucho mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.

Page 17: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

PARADIGMA DE PROGRAMACIPARADIGMA DE PROGRAMACIÓÓNN

Lenguajes imperativos.

Lenguajes funcionales.

Lenguajes lógicos.

Lenguajes orientados a objetos.

Page 18: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJES IMPERATIVOSLENGUAJES IMPERATIVOS

Ofrecen al programador conceptos que se traducen de forma natural al modelo de la máquina.

Los programas escritos en ellos se basan en la idea de secuencia de instrucciones que se tienen que llevar a cabo como una receta, son la transcripciónde un algoritmo.

Page 19: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJES FUNCIONALESLENGUAJES FUNCIONALES

Los matemáticos desde hace un buen tiempo están resolviendo problemas usando el concepto de función.

Una función convierte los datos en resultados. Si se supiera de antemano cómo evaluar una función, usando la computadora, podríamos resolver automáticamente muchos problemas.

Los lenguajes funcionales aprovechan la posibilidad que tienen las funciones para manipular datos simbólicos y no solamente numéricos, además de la propiedad de las funciones que les permite componer creando de esta manera, la oportunidad para resolver problemas complejos a partir de las soluciones a otros más sencillas. También se incluyó la posibilidad de definir funciones recursivas.

Page 20: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJES LLENGUAJES LÓÓGICOSGICOS

Se utiliza el formalismo de la lógica para representar el conocimiento sobre un problema y para hacer preguntas que si se demuestra que se pueden deducir a través del conocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas.Así se encuentras soluciones a problemas formulados como preguntas.

Con base en la información expresada dentro de la lógica de Primer Orden, se formulan preguntas sobre el dominio del problema y el intérprete del lenguaje lógico trata de encontrar las respuestas automáticamente.

Page 21: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJES ORIENTADOS A OBJETOSLENGUAJES ORIENTADOS A OBJETOS

Se basa en lenguajes que soportan sintáctica y semánticamente la unión entre los tipos abstractos de datos y sus operaciones (a esta unión se la suele llamar clase).

Además, incorpora en su entorno de ejecución mecanismos tales como el polimorfismo y el envío de mensajes entre objetos.

Otra característica es que los programas y módulos son más fáciles de escribir, mantener y reutilizar .

Page 22: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJE AÑO CREADOR APLICACIONES CARACTERÍSTICAS

FORTRAN(Formula Translator)

1953 John W. Backus

Científicas.Análisis numérico.

Primer lenguaje de alto nivel. Desarrollado en IBM

LISP 1958 John McCarthy

Inteligencia Artificial.

Primer lenguaje funcional. Desarrollado en el MIT

ALGOL(AlgorithmicLanguage)

1960 Peter Naur Lenguaje imperativo, de alto nivel. No tuvo éxito comercial.

COBOL(CommonBusiness -OrientedLanguage)

1960 GraceHooper

Negocios. Desarrollado por el Departamento de defensa de E.U. y el CODASYL (Conference on Data Systems Languages)

Page 23: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

JOHN BACKUSFORTRAN John McCarthy (2006)

LISP

Page 24: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJE AÑO CREADOR APLICACIONES CARACTERÍSTICAS

SNOBOL(StriNg OrientedsymBOlicLanguage)

60’S D. J. Farber, R. E. Griswoldy F. P. Polensky

Ciencias humanísticas.

Lenguaje de manipulación de texto. Desarrollado en los laboratorios Bell.

SIMULA 1967 Ole JohanDahl y KristenNygaard

Simulación Primer lenguaje orientado a objetos.

APL (A ProgramingLanguage)

1962 KennethIverson

Desarrollo de Prototipos.Deep Blue.

Lenguaje interpretado.Desarrollado en IBM.

BASIC (BeginnersAll-purposeSymbolicInstructionCode)

1964 Thomas EugeneKurtz y JohnGeorgeKemeny

Herramienta de enseñanza.

Desarrollado en el Dartmouth College

Page 25: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

Kenneth IversonAPL Thomas Eugene Kurtz

BASIC

Page 26: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJE AÑO CREADOR APLICACIONES CARACTERÍSTICAS

ADA 70’s Jean Ichbiah

Entornos en los que se necesita una gran seguridad y confiabilidad como la defensa, aeronáutica, gestión del tráfico aéreo, etc.

Lenguaje imperativo.

PL/I (Programming Language1)

1970 IBM Aplicaciones científicas y comerciales.

Primer lenguaje comercial cuyo compilador estaba escrito en el lenguaje que compilaba.

Page 28: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJE AÑO CREADOR APLICACIONES CARACTERÍSTICASPASCAL 1970 Niklaus

WirthPropósito general.

Lenguaje imperativo. Desarrollado en la Escuela Politécnica Federal de Zurichpara fines docentes.

PROLOG(Programation et Logique)

1972 AlainColmerauer,PhilippeRoussel

Inteligencia artificial.

Lenguaje interpretado y lógico. Desarrollado en la Universidad de Aix-Marsella

C 1972 DennisRitchie y KenThompson

Software de sistema.

Lenguaje imperativo, compilado. Desarrollado en los laboratorios Bell.

MODULA-2 70’s NiklausWirth

Uso didáctico. Es un lenguaje compilado.

Page 29: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

Niklaus WirthPascal

Dennis RitchieC

Page 30: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

LENGUAJE AÑO CREADOR APLICACIONES CARACTERÍSTICASC++ 80’s Bjarne

StroustrupPropósito general.

Orientado a objetos.

Java 90’s Sun Microsystems

Propósito general.

Orientado a objetos.

Page 31: Facultad de Ciencias de la Computacionagarces/descargas/LENGUAJES.pdfconocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Asíse encuentras

James GoslingJava

Bjarne StroustrupC++