Please enable JavaScript.
Coggle requires JavaScript to display documents.
Lenguajes de Programación, Candy Nohemí Velazco Mendiola, Programación…
Lenguajes de Programación
¿Qué es un lenguaje de programación
Es para comunicar instrucciones a una computadora.
Tiene símbolos y reglas que permiten crear programas que realicen funciones especifícas
Herramienta utilizada por los programadores que les permite escribir código que la computadora pueda leer y ejecutar.
Computacionalmente completo si puede cumplir con todas sus funciones computables.
Se conforma de símbolos y sigue reglas de sintaxis y semántica.
Definición de un lenguaje de programación
Semántica
Descripción del significado de instrucciones y expresiones
Nos dice que se espera del resultado de una instrucción
Puede ser:
Informal
Formal
Basado en técnicas matemáticas
Abre la posibilidad de demostrar la corrección del programa.
Enfoques de la semántica formal
Semántica axiomática
Semántica operacional
Semántica denotacional
Sintaxis
Descripción del conjunto de secuencias de símbolos consideradas como programas válidos
Las reglas sintácticas que específican la secuencia de símbolos que forman una frase valida en el lenguaje
Cada lenguaje de programación tiene su propias sintaxis
Notación BNF
Desarrollada por John Backus para Algol 58, modificada por Peter Naur para Algol 60
Amplio abanico de herramientas para generar analizadores léxicos y parsers a partir de BNF
Notación formal para definir la sintaxis de un lenguaje
Consiste en un conjunto de reglas y es para especificar la mayoría de los lenguajes de programación
Sistema de Tipos
Su propósito es prevenir errores antes y durante el tiempo de ejecución de un código
Requiere anotaciones de tipo en el código fuente
Ejemplos:
Evitar sumar booleanos
Aplicar función a número incorrecto de argumentos
Sirven para hacer programas correctos e impedir que se representen estados incorrectos
Conjunto de reglas que permite asignar expresiones de tipo a las instancias de uso de los objetos del programa
Procesadores de lenguaje
Interpretes
Programa que traduce línea por línea un programa escrito
Procesa el código fuente de un programa durante su tiempo de ejecución
Recurre a sus propias bibliotecas internas
Utilizado para prototipar y dar semántica a un lenguaje.
Ventajas
Más fácil de depurar (escribir, probar y modificar)
Provee independencia de plataforma
Programa fuentes más pequeño que código compilado
Encargado de procesar y traducir cada instrucción de un programa escrito en un lenguaje de alto nivel a código máquina y después ejecutarla.
Compiladores
Traduce todo el código de una sola vez
Traduce un programa fuente en un programa objeto antes de generar la traducción final en código máquina
Procesa el código antes de ejecutarlo
Ventajas
Código compilado se ejecuta mucho más rápido que
código interpretado
Permite procesar módulos por separado
Paradigmas de lenguaje
Diferentes maneras de expresar computación
Imperativo
Variables como abstracción de celdas de memoria
Expresada a través de la modificación reiterada de la memoria física
Resultados intermedios se almacenan en memoria
Control basado en iteración
Lógico
No hay memoria implícita
Resultados intermedios son pasados a través de la unificación
Expresada a través de proof search o alternativamente, por definición de predicados recursivos
Control basado en recursión
Funcional
Expresada a través de la aplicación y
composición de funciones
No hay memoria implícita
Resultados intermedios son pasados directamente a otras funciones
Control basado en recursión
Orientado a objetos
Objetos se agrupan en clases, clases se agrupan en jerarquías
Resultados son pasados como parámetros a mensajes
Computación a través del intercambio de mensajes entre objetos
Otros
Concurrente
Dataflow
Algebraico
Candy Nohemí Velazco Mendiola
Programación Lógica y Funcional