Lenguajes de Programacion Sintaxis Semantica y Jerarquia
Lenguajes de Programacion Sintaxis Semantica y Jerarquia
Lenguajes de Programacion Sintaxis Semantica y Jerarquia
semántica y jerarquía
SINTAXIS
Un programa en cualquier lenguaje se puede concebir como un string de caracteres escogidos de
algún conjunto o alfabeto de caracteres. Las reglas que determinan si un string es un programa
válido o no, constituyen la sintaxis de un lenguaje. Posteriormente, se estudiarán ciertas notaciones
denominadas expresiones regulares y gramáticas libres de contexto, muy usadas no sólo para
especificar las sintaxis de los lenguajes de programación sino también para contribuir en la
construcción de sus compiladores.
SEMANTICA
Las reglas que determina el significado de los programas constituyen la semántica de los lenguajes
de programación. Es más difícil de especificar que la sintaxis.
Los siguientes son algunos enfoques para especificar la semántica de los lenguajes:
Semántica Interpretativa (u Operacional)
Un lenguaje de máquina tiene su semántica definida por el computador. Un programa en lenguaje de
máquina "significa" exactamente lo que el computador hace cuando el programa "corre" o se
ejecuta. Sin embargo, con un lenguaje de alto nivel no se puede dejar que el computador defina la
semántica del lenguaje, puesto que no es posible "correr programas y ver" hasta que se tenga un
compilador. No se puede tener un compilador y saber qué es correcto hasta haber definido lo que los
programas significan.
Este enfoque interpretativo para definir la semántica de los lenguajes de programación consiste en
postular una máquina abstracta y proveer reglas para la ejecución de programas sobre esta máquina
abstracta. Así, estas reglas definen el significado de los programas. Usualmente, la máquina
abstracta se caracteriza por un estado consistente de todos los objetos datos, sus valores, y los
programas con sus contadores de programa. Las reglas semánticas especifican cómo el estado es
transformado por las diversas construcciones de los lenguajes de programación.
Traducción
La traducción de un lenguaje assembly a lenguaje de máquina (que es directa y comprensible),
forma una especificación semántica muy usada para un lenguaje assembly.
El compilador para un lenguaje de alto nivel sobre una máquina específica llega a ser la definición
semántica del lenguaje.
Definición Axiomática
Se pueden definir reglas que relacionan los datos antes y después de la ejecución de cada programa.
Estas reglas se pueden usar para proveer teoremas acerca de la relación E/S de un programa. Este
enfoque tiene la ventaja que puede usarse para definir semánticas para un aparte más que para
todos los aspectos de un lenguaje.
Definición Extensible
En este enfoque se definen ciertas operaciones primitivas y el significado del lenguaje en términos
de estas primitivas. Ejemplo LISP.
Semántica Matemática o Denotacional
Los objetos matemáticos corresponden a programas que son definidos, y reglas abstractas para
traducir programas a estos objetos abstractos
En el tope de la jerarquía está el programa propiamente tal, que es la unidad de ejecución básica.
Luego viene una entidad que puede ser compilada, y que se compone de sentencias y expresiones.
1.1 LENGUAJES DE ALTO NIVEL
Existen aspectos que hacen más legibles los programas en lenguajes de alto nivel:
Estructuras de Datos
Reglas de Alcance que permitan modificaciones en partes de un programa sin afectar otras partes
del mismo
Flujo de Control que identifique claramente las estructuras de ciclo de un programa
Subprogramas que permitan diseño modular.
Un compilador también puede ayudar a producir programas confiables. Por ejemplo, un compilador
puede chequear si los tipos de operandos son compatibles; puede advertir al usuario si hay
posibilidad de usar una variable antes de ser definida, o si una referencia a un arreglo puede estar
fuera de los límites.
Conjunto de Caracteres
Es la primera etapa en el diseño de la sintaxis de un lenguaje
Casi todos tienen el mismo conjunto de letras y dígitos
La diferencia está en los caracteres especiales
Incide en la determinación del tipo de equipo para la E/S
Identificadores
Sintaxis básica: string de letra y/o dígito comenzando con letra
Se introducen caracteres especiales que facilitan la lectura
Operadores
La mayoría de los lenguajes tiene un conjunto estándar de operadores:
aritméticos
relacionales
lógicos