SlideShare una empresa de Scribd logo
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

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 

Último (20)

Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 

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