SlideShare una empresa de Scribd logo
1 de 15
Lenguajes de Programación
Tema 1. Introducción y conceptos
generales
Pedro García López
pgarcia@etse.urv.es/
Indice
1. ¿ Qué es un lenguaje de programación ?
2. Abstracciones
3. Paradigmas de computación
4. Definición del lenguaje
5. Traducción del lenguaje
6. Historia
7. Preguntas
1.1 ¿ Qué es un LP ?
• Computación
– Máquina Turing, tesis de Church
• Legibilidad por parte de la máquina
• Legibilidad por parte del ser humano
Definición: Un lenguaje de programación es un sistema
notacional para describir computaciones de una forma
legible tanto para la máquina como para el ser humano.
1.2 Características
• Eficiencia
• Expresividad
• Capacidad de mantenimiento
• Legibilidad
• Confiabilidad
• Seguridad
• Simplicidad
• Productividad
1.3 Abstracciones
• Clases: Datos y control
• Niveles: básicas, estructuradas y unitarias
Abstracciones de datos:
● Básicas: tipos básicos (enteros, reales, ...)
● Estructuradas: tipos estructurados (arreglos, registros)
● Unitarias: Tipos abstractos de datos (TDAs), paquetes,
módulos, clases, componentes
1.3 Abstracciones
• Abstracciones de control
– Básicas: asignación, goto
– Estructuradas: condicionales e iteradores
– Unitarias: paquetes, módulos, hilos y tareas.
Un lenguaje de programación es completo en Turing
siempre que tenga variables enteras y aritméticas, y que
ejecute enunciados en forma secuencial, incluyendo
enunciados de asignación, selección e iteración.
1.4 Paradigmas de programación
• Imperativo
– modelo de Von Neuman, cuello de botella de
Von Neuman
• Orientado a Objetos
– TDAs, encapsulación, modularidad, reutilización
• Funcional
– noción abstracta de función, cálculo lambda,
recursividad, listas
• Lógico
– Lógica simbólica, programación declarativa
1.5 Definición del lenguaje
• Sintaxis (estructura)
– Gramáticas libres de contexto, estructura léxica,
tokens
• Semántica (significado)
– Lenguaje natural
– Semántica operacional
– Semántica denotacional
1.6 Traducción del lenguaje
• Traductor es un programa que acepta otros
programas escritos en un lenguaje y:
– los ejecuta directamente (interprete)
– los transforma en una forma adecuada para su
ejecución (compilador).
entrada
código
fuente
salida
intérprete
1.6 Traducción
• Pseudointérpretes: intermedio entre
interprete y compilador: lenguajes
intermedios
• Operaciones de un traductor: analizador
léxico (tokens), analizador sintáctico,
analizador semántico, preprocesador
código
fuente
traducción
adicional
compilación
código
objeto
código
ejecutable
1.6 Traducción
• Tiempo de compilación y tiempo de
ejecución
• Propiedades estáticas: tiempo de compilación
• Propiedades dinámicas: tiempo de ejecución
• Recuperación de errores (compilación y
ejecución)
• Eficiencia y optimización (compilación o
ejecución)
1.7 Historia
FORTRAN
AlGOL 60 COBOL
50
60
70
80
90
Simula
Smalltalk
Pascal
Ada
C
PL/I
LISP
ML
Miranda
Prolog
1.7 Historia
1950 1960 1970 1980 1990
Fortran(54)
PL/I(66)
Ada(95)
Java(96)
Basic(66)
C(72)
Pascal(70)
Cobol(58)
Algol(60)
Simula(67) Smalltalk(80)
C++(89)
ENSAMBLADOR
Eiffel (86)
Ada(83)
1.8 Preguntas
• Clasifica los siguientes lenguajes (C, Ada,
C++, Java, LISP, Prolog, Visual Basic,
JavaScript, C#, PHP) en base a :
– Paradigma
– tipos de traductor (compilador, interprete,
pseudointérprete)
– Propiedades estáticas y dinámicas
– Eficiencia
• Extraed conclusiones de esta clasificación
1.8 Preguntas
• Evalua los lenguajes del punto anterior
respecto a las características del punto 1.2
• Extrae conclusiones de las dos
clasificaciones

Más contenido relacionado

Similar a Lenguajes de Programación. Conceptos.ppt

Introobjetos
IntroobjetosIntroobjetos
Introobjetos
ayreonmx
 
Programación inwtd, seccion 3-4d jaz del carmen
Programación inwtd, seccion 3-4d jaz del carmenProgramación inwtd, seccion 3-4d jaz del carmen
Programación inwtd, seccion 3-4d jaz del carmen
pichinte
 
Programación
ProgramaciónProgramación
Programación
pichinte
 
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB  FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
Vannesa Pinzon
 
fundamentos de diseño en programacion
fundamentos de diseño en programacionfundamentos de diseño en programacion
fundamentos de diseño en programacion
Karen Lagos
 

Similar a Lenguajes de Programación. Conceptos.ppt (20)

Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
 
intro_lenguajes.pptx
intro_lenguajes.pptxintro_lenguajes.pptx
intro_lenguajes.pptx
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnostico
 
Introobjetos
IntroobjetosIntroobjetos
Introobjetos
 
Programacion evolucion
Programacion evolucionProgramacion evolucion
Programacion evolucion
 
Programación inwtd, seccion 3-4d jaz del carmen
Programación inwtd, seccion 3-4d jaz del carmenProgramación inwtd, seccion 3-4d jaz del carmen
Programación inwtd, seccion 3-4d jaz del carmen
 
Programación
ProgramaciónProgramación
Programación
 
Clase 2 POO
Clase 2 POOClase 2 POO
Clase 2 POO
 
Clasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónClasificación de los lenguajes de programación
Clasificación de los lenguajes de programación
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacion
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
 
Lenguajes de programación.
Lenguajes de programación.Lenguajes de programación.
Lenguajes de programación.
 
Principales características de 10 lenguajes de programacion
Principales características de 10 lenguajes de programacionPrincipales características de 10 lenguajes de programacion
Principales características de 10 lenguajes de programacion
 
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB  FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
 
fundamentos de diseño en programacion
fundamentos de diseño en programacionfundamentos de diseño en programacion
fundamentos de diseño en programacion
 
Arquitectura de Computadoras
Arquitectura de Computadoras Arquitectura de Computadoras
Arquitectura de Computadoras
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Lenguajes de programacion22
Lenguajes de programacion22Lenguajes de programacion22
Lenguajes de programacion22
 

Último

Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
EdwinGarca59
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 

Último (20)

10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
CARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbx
CARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbxCARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbx
CARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbx
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blog
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.
 

Lenguajes de Programación. Conceptos.ppt

  • 1. Lenguajes de Programación Tema 1. Introducción y conceptos generales Pedro García López pgarcia@etse.urv.es/
  • 2. Indice 1. ¿ Qué es un lenguaje de programación ? 2. Abstracciones 3. Paradigmas de computación 4. Definición del lenguaje 5. Traducción del lenguaje 6. Historia 7. Preguntas
  • 3. 1.1 ¿ Qué es un LP ? • Computación – Máquina Turing, tesis de Church • Legibilidad por parte de la máquina • Legibilidad por parte del ser humano Definición: Un lenguaje de programación es un sistema notacional para describir computaciones de una forma legible tanto para la máquina como para el ser humano.
  • 4. 1.2 Características • Eficiencia • Expresividad • Capacidad de mantenimiento • Legibilidad • Confiabilidad • Seguridad • Simplicidad • Productividad
  • 5. 1.3 Abstracciones • Clases: Datos y control • Niveles: básicas, estructuradas y unitarias Abstracciones de datos: ● Básicas: tipos básicos (enteros, reales, ...) ● Estructuradas: tipos estructurados (arreglos, registros) ● Unitarias: Tipos abstractos de datos (TDAs), paquetes, módulos, clases, componentes
  • 6. 1.3 Abstracciones • Abstracciones de control – Básicas: asignación, goto – Estructuradas: condicionales e iteradores – Unitarias: paquetes, módulos, hilos y tareas. Un lenguaje de programación es completo en Turing siempre que tenga variables enteras y aritméticas, y que ejecute enunciados en forma secuencial, incluyendo enunciados de asignación, selección e iteración.
  • 7. 1.4 Paradigmas de programación • Imperativo – modelo de Von Neuman, cuello de botella de Von Neuman • Orientado a Objetos – TDAs, encapsulación, modularidad, reutilización • Funcional – noción abstracta de función, cálculo lambda, recursividad, listas • Lógico – Lógica simbólica, programación declarativa
  • 8. 1.5 Definición del lenguaje • Sintaxis (estructura) – Gramáticas libres de contexto, estructura léxica, tokens • Semántica (significado) – Lenguaje natural – Semántica operacional – Semántica denotacional
  • 9. 1.6 Traducción del lenguaje • Traductor es un programa que acepta otros programas escritos en un lenguaje y: – los ejecuta directamente (interprete) – los transforma en una forma adecuada para su ejecución (compilador). entrada código fuente salida intérprete
  • 10. 1.6 Traducción • Pseudointérpretes: intermedio entre interprete y compilador: lenguajes intermedios • Operaciones de un traductor: analizador léxico (tokens), analizador sintáctico, analizador semántico, preprocesador código fuente traducción adicional compilación código objeto código ejecutable
  • 11. 1.6 Traducción • Tiempo de compilación y tiempo de ejecución • Propiedades estáticas: tiempo de compilación • Propiedades dinámicas: tiempo de ejecución • Recuperación de errores (compilación y ejecución) • Eficiencia y optimización (compilación o ejecución)
  • 12. 1.7 Historia FORTRAN AlGOL 60 COBOL 50 60 70 80 90 Simula Smalltalk Pascal Ada C PL/I LISP ML Miranda Prolog
  • 13. 1.7 Historia 1950 1960 1970 1980 1990 Fortran(54) PL/I(66) Ada(95) Java(96) Basic(66) C(72) Pascal(70) Cobol(58) Algol(60) Simula(67) Smalltalk(80) C++(89) ENSAMBLADOR Eiffel (86) Ada(83)
  • 14. 1.8 Preguntas • Clasifica los siguientes lenguajes (C, Ada, C++, Java, LISP, Prolog, Visual Basic, JavaScript, C#, PHP) en base a : – Paradigma – tipos de traductor (compilador, interprete, pseudointérprete) – Propiedades estáticas y dinámicas – Eficiencia • Extraed conclusiones de esta clasificación
  • 15. 1.8 Preguntas • Evalua los lenguajes del punto anterior respecto a las características del punto 1.2 • Extrae conclusiones de las dos clasificaciones