El concepto de Lenguaje de Programación Un lenguaje de programación es un convenio entre personas que puede definirse así: Conjunto de reglas o normas que permiten asociar a cada programa correcto un cálculo que será llevado a cabo por un ordenador (sin ambigüedades). • por tanto, un lenguaje de programación es un convenio o acuerdo acerca de como se debe de interpretar el significado de los programas de dicho lenguaje • muchas veces se confunden los lenguajes con los compiladores, interpretes o con los entornos de desarrollo de software
Estándarización de los lenguajes El convenio suele estar reflejado en un documento (un libro) que se hace público y mediante el cual se determinan las reglas de interpretación correcta de los programas • algunos lenguajes están definidos por un documento estandarizado en un organismo oficial como ISO (p.ej. C++ es el estándard ISO/IEC 14882, de 1998 ) • en otros casos la descripción del lenguaje no está oficialmente estandarizada, el lenguaje se define por el documento de referencia que lo describe (pej. Java, descrito en este libro http://java.sun.com/docs/books/jls/)
¿ que es un programa ? En este contexto, un programa es una: Secuencia finita de dígitos y caracteres, directamente legible por las personas y por el ordenador • estas secuencias se suelen almacenar en uno o varios archivos de texto ASCII o UNICODE. • también es posible almacenar programas en formatos alternativos de archivos, como XML u otros, aunque en stos casos los archivos no son directamente legibles por las personas, sí son legibles mediante herramientas de traducción.
¿ que es un programa correcto ? Cada lenguaje tiene asociado un conjunto (que debe estar bien definido en el lenguaje) de programas correctos. • Las reglas de cada lenguaje deben definir ese conjunto sin ambigüedades. creado October 11, 2011
página 1.2 / 17
LP (11-12) 1. Introducción
• Para esto se suelen usar métodos mas o menos formales. La validez de un programa se define a varios niveles con técnicas distintas: – léxico : expresiones regulares – sintaxis : gramáticas libres de contexto – semántica : descripciones o reglas no formales
¿ que es un cálculo ? Es necesario definir adecuadamente que se entiende por calculo, podemos verlo desde dos perspectivas: • en sentido amplio: Cualquier proceso automático de recogida, manipulación, y difusión de información • en sentido formal: Cualquier proceso automático cuyos aspectos relevantes puedan ser modelados matemáticamente con una máquina de turing
¿ que es el significado de un programa ? Al cálculo asociado por un lenguaje a un programa correcto se le considera el significado del programa. • a las metodologías para especificar el significado de los programas se les llama semántica de los lenguajes de programación. • las reglas de cada lenguaje deben permitir establecer el significado sin ambigüedad alguna, de forma clara y concisa
¿ que es el significado de un programa ? Ejemplo de significado: consideremos este programa
int fact(int n) { if (n>0) return n*fact(n-1) ; else return 1 ; } int main() { int n ; while( cin >> n ) cout