Criterios del lenguaje
Han existido muchos lenguajes de programación los cuales cumplieron con ciertos criterios para considerar que tienen méritos. Los criterios están interrelacionados, un lenguaje con una descripción bien definida puede ser confiable y eficiente.
Descripciones bien definidas
Los programadores de FORTRAN o PL/I trabajaban a menudo como grupo. Si un programador olvidaba cómoescribir el código para efectuar una tarea, lo mejor era bajar al vestíbulo y preguntarle a un amigo
BNF y EBNF
Los diseñadores de ALGOL 60 rectificaron esto la proporcionar una sencilla descripción del lenguaje en 18 páginas. BNF es un ejemplo de un metalenguaje, un lenguaje utilizado para describir otro lenguaje. Tiene símbolos llamados metasímbolos, y reglas propias.
La sintaxis por simisma no da significado a un lenguaje; solo define la colección de frases y sentencias que son combinaciones válidas de los caracteres del lenguaje.
Los caracteres individuales son tokens, y nuestro seudocódigo tiene también otros tokens. Algunos de éstos son símbolos especiales tales como +,-,= , ; y ::-. Otros son conocidos como símbolos-palabra, los cuales incluyen las palabras reservadas, lascuales no pueden ser redefinidas dentro de un programa. Estas palabras siempre aparecen en negritas
Semántica
Un lenguaje también debe estar definido semánticamente al describir de manera precisa lo que significa una construcción particular.
Dos métodos matemáticos formales están siendo utilizados para describir la semántica de los lenguajes.
Axiomático.- Su semántica está basada en el cálculo depredicado (un ejemplo PROLOG). Define declaraciones sobre programas que son o bien verdaderas o bien falsas durante varias etapas en la ejecución de un programa. Si puede probarse que cada condición es verdadera, sin importar la entrada de datos, el programa tendrá la garantía de estar correcto.
Denotacional.- Su semántica está basada en la teoría de funciones.
Los métodos de semántica formalson importantes por varias razones.
• Proporcionan una definición de lenguaje no ambigua
• Suministran estándares de modo que un lenguaje no variara de implementación a otra
• Ofrecen una base para pruebas de corrección tanto de compiladores como de programas
Comprobabilidad
Probar con certeza matemática que un programa es correcto es un proceso lento. Involucra tres pasos.
• Comprobaciónde que el programa cumple con la intención del programados
• Probar que el compilador traduce de manera correcta a código de máquina la sintaxis y la semántica del lenguaje empleado
• Comprobar que la máquina misma funciona correctamente.
Para un lenguaje de programación una meta es probar que un compilador para el lenguaje lo interpreta de manera precisa.
La sintaxis de Pascal fue definida enBNF y su semántica definida axiomáticamente por Nicholas Wirth y ALGOL 68 fue definido en una gramática vW que era demasiado enigmática para la mayoría de usuarios. Estos metalenguajes forman bases para la comprobación de compiladores.
Confiabilidad
El software se considera confiable si se comporta como es anunciado y produce los resultados que el usuario espera. Cuando se presenta un error,debería de ser fácilmente detectado y corregido.
La declaración goto es quizá la más notoria característica de lenguaje pensada para dar como resultado programas no confiables, los programas son difíciles de leer para cualquiera que no sea su creador.
Las características de sintaxis poco usuales también fomentan errores.
Un lenguaje confiable debería ser capaz de manejar errores durante eltiempo de ejecución. Una sobrecarga (overflow) aritmética ocurre cuando se calcula un entero que es mayor de lo que puede ser soportado por el hardware particular involucrado. Puede presentarse errores durante la entrada de datos. Estas clases de errores son llamadas excepciones, y las provisiones del lenguaje para tratar con ellas son conocidas como manejadores de excepción.
Traducción rápida...
Regístrate para leer el documento completo.