Вы находитесь на странице: 1из 3

SINTAXIS

Un programa en cualquier lenguaje se puede concebir como un string de caracteres escogidos de algn
conjunto o alfabeto de caracteres. Las reglas que determinan si un string es un programa vlido o no,
constituyen la sintaxis de un lenguaje. Posteriormente, se estudiarn ciertas notaciones denominadas
expresiones regulares y gramticas libres de contexto, muy usadas no slo para especificar las sintaxis de
los lenguajes de programacin sino tambin para contribuir en la construccin de sus compiladores.
SEMANTICA
Las reglas que determina el significado de los programas constituyen la semntica de los lenguajes de
programacin. Es ms difcil de especificar que la sintaxis.
Los siguientes son algunos enfoques para especificar la semntica de los lenguajes:
Semntica Interpretativa (u Operacional)
Un lenguaje de mquina tiene su semntica definida por el computador. Un programa en lenguaje de
mquina "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 semntica 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 semntica de los lenguajes de programacin consiste en
postular una mquina abstracta y proveer reglas para la ejecucin de programas sobre esta mquina
abstracta. As, estas reglas definen el significado de los programas. Usualmente, la mquina abstracta se
caracteriza por un estado consistente de todos los objetos datos, sus valores, y los programas con sus
contadores de programa. Las reglas semnticas especifican cmo el estado es transformado por las
diversas construcciones de los lenguajes de programacin.
Traduccin
La traduccin de un lenguaje assembly a lenguaje de mquina (que es directa y comprensible), forma una
especificacin semntica muy usada para un lenguaje assembly.
El compilador para un lenguaje de alto nivel sobre una mquina especfica llega a ser la definicin
semntica del lenguaje.
Definicin Axiomtica
Se pueden definir reglas que relacionan los datos antes y despus de la ejecucin de cada programa. Estas
reglas se pueden usar para proveer teoremas acerca de la relacin E/S de un programa. Este enfoque tiene
la ventaja que puede usarse para definir semnticas para un aparte ms que para todos los aspectos de un
lenguaje.
Definicin Extensible
En este enfoque se definen ciertas operaciones primitivas y el significado del lenguaje en trminos de
estas primitivas. Ejemplo LISP.
Semntica Matemtica o Denotacional
Los objetos matemticos corresponden a programas que son definidos, y reglas abstractas para traducir
programas a estos objetos abstractos
LA ESTRUCTURA JERARQUICA DE LOS LENGUAJES DE PROGRAMACIN
Un lenguaje de programacin es una notacin para especificar una secuencia de operaciones a realizar
sobre objetos datos. Estos se pueden agrupar en una jerarqua de rbol, cuyas unidades son comunes y
familiares a la mayora de los lenguajes.

En el tope de la jerarqua est el programa propiamente tal, que es la unidad de ejecucin bsica. Luego
viene una entidad que puede ser compilada, y que se compone de sentencias y expresiones.

1.1 LENGUAJES DE ALTO NIVEL


Un lenguaje de programacin es un medio para comunicar algoritmos al computador. Existen cientos de
lenguajes de programacin los cuales difieren en el grado de clausura a un
lenguaje natural o matemtico por una parte, y al lenguaje de mquina por otra. Tambin difieren en el
tipo de problema para el cual funcionan mejor.
Algunos aspectos de los lenguajes de alto nivel que los hacen preferibles a los lenguajes de mquina o
assembly son:
Facilidad de Entender. Un programa en lenguaje de alto nivel es:
fcil de leer y de escribir
la notacin ms natural de describir algoritmos
Un buen lenguaje de programacin debera proveer aspectos para el diseo modular contemplando
operadores, estructura de datos, flujo de control.
Naturalidad. Facilidad de poder expresar un algoritmo en el lenguaje (sentencias estructuradas, estructura
natura del algoritmo)
Portabilidad. Posibilidad de ejecutar programas en una variedad de mquinas
Eficiencia de Uso. Considerar aspectos del lenguaje como de los programas. Compilacin eficiente.
Existen aspectos que hacen ms 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 diseo modular.
Un compilador tambin 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 lmites.

1.1 ELEMENTOS SINTCTICOS DE UN LENGUAJE DE PROGRAMACIN


Conjunto de Caracteres
Es la primera etapa en el diseo de la sintaxis de un lenguaje
Casi todos tienen el mismo conjunto de letras y dgitos
La diferencia est en los caracteres especiales
Incide en la determinacin del tipo de equipo para la E/S
Identificadores
Sintaxis bsica: string de letra y/o dgito comenzando con letra
Se introducen caracteres especiales que facilitan la lectura
Operadores
La mayora de los lenguajes tiene un conjunto estndar de operadores:
aritmticos
relacionales
lgicos
Palabras Claves y Reservadas
Palabra clave: identificador usado como parte fija de la sintaxis de una sentencia
Palabra reservada: palabra clave que no puede ser usada como identificador
El anlisis sintctico se facilita usando palabras reservadas
Generalmente una sentencia comienza con palabras claves designando el tipo de sentencia.
Comentarios y Palabras Opcionales
La mayora de los lenguajes permite incluir comentarios en los programas
Los comentarios no son considerados durante la compilacin.
Espacios en Blanco
Vara su inclusin entre un lenguaje y otro
Delimitadores
Es un elemento sintctico para marcar el comienzo y/o el fin de una unidad sintctica
Ejemplo BEGIN

....
END
Las caractersticas son:
realza la lectura
simplifica el anlisis sintctico
elimina ambigedades
delimita explcitamente frontera o cota de una construccin sintctica.
Formato Libre y Fijo
Una sintaxis es libre si las sentencias del programa se pueden escribir en cualquier parte de una lnea sin
observar la posicin o salto de lnea. Ejemplo Pascal
Una sintaxis es fija si utiliza la posicin en la lnea para proporcionar informacin. Ejemplo estrictamente
fija, mquina; parcialmente fija, Fortran
Expresiones
Son unidades sintcticas bsicas con las cuales se construyen sentencias.
Hay distintas formas para escribir una expresin: infija, prefija, postfija (inorden, preorden, postorden).
Sentencias
Son las componentes sintcticas ms importantes de los lenguajes de programacin. Algunos tienen
formato bsico de sentencia. Existen diferentes sintaxis para cada tipo diferente de sentencia.
En general existen sentencias simples y estructuradas.
Estructura de Programa y Subprograma
La organizacin sintctica de un programa y la definicin de subprograma es variada.
Definicin variada de subprograma
- cada definicin de subprograma es tratada como una unidad sintctica separada
- Las principales estructuras de los programas son: bloques, subprogramas
- El bloque se ejecuta cuando la secuencia de ejecucin llega. El procedimiento es llamado
explcitamente.
En Fortran cada subprograma es compilado separadamente y los programas son "linkeados" en tiempo de
carga.
En APL los subprogramas son compilados separadamente y son "linkeados" slo cuando uno llama a otro
durante la ejecucin.
Definicin de subprogramas anidados
Un ejemplo se da en ALGOL que muestra la estructura de programas anidados en que la definicin del
subprograma aparece como declaracin en el programa principal. A su vez, el mismo subprograma puede
contener otra definicin anidada.
Descripcin separada de datos y sentencias ejecutables
Un representante es el COBOL. Las declaraciones de datos y sentencias ejecutables para los
subprogramas (prrafos), se encuentran en la DATA DIVISION y en la PROCEDURE DIVISION,
respectivamente. La ENVIRONMENT DIVISION consiste de las declaraciones de operacin y ambiente
externo, equipo, archivos, memoria, etc... Todos los datos son globales a los subprogramas. Una ventaja
es que cambios en la estructura de datos se hacen sin tocar los subprogramas.
Definicin de subprogramas no separados
No hay diferencia sintctica entre las sentencias del programa y las del subprograma. Un ejemplo
SNOBOL: independiente del nmero de subprogramas que contenga el programa, es una lista de
sentencias. El punto donde un subprograma comienza y termina no se distingue. Los programadores
introducen una separacin artificial insertando comentarios. Otro ejemplo BASIC.

Вам также может понравиться