Fundamentos de Lenguajes Formales y de Programación: Conceptos Clave

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,79 KB

Lenguaje Formal

Un lenguaje formal es un lenguaje artificial, creado por el hombre, que está formado por símbolos y fórmulas. Su objetivo fundamental es formalizar la programación de computadoras o representar simbólicamente conocimiento. Las palabras y oraciones en un lenguaje formal poseen una definición rigurosa desde el punto de vista científico, utilizándose para modelar teorías científicas con la ventaja de reducir la ambigüedad.

En resumen, las características de los lenguajes formales son:

  • Se han desarrollado como un medio para formalizar matemáticamente una teoría.
  • Su sintaxis es capaz de definir oraciones rigurosamente definidas.
  • Constituyen un poderoso instrumento para la investigación y el procesamiento del Lenguaje Natural por computadora.

Lenguaje de Programación

Un lenguaje de programación es un lenguaje artificial usado para escribir instrucciones que pueden ser traducidas a lenguaje máquina y ejecutadas en una computadora. Un lenguaje de programación está formado por un conjunto de reglas sintácticas que permiten escribir un programa, de forma que sea entendido por la computadora. Un programa es un conjunto de instrucciones con un orden determinado que permite realizar una tarea computacional.

Un lenguaje de programación se basa en dos conceptos fundamentales:

  • Sintaxis: garantiza la utilización correcta de cada una de las expresiones de determinado lenguaje de programación.
  • Semántica: garantiza que las expresiones de un lenguaje de programación posean un significado correcto.

Tipos de Lenguajes de Programación

Lenguaje de Programación de Bajo Nivel

Depende totalmente de la máquina (computadora u ordenador). Estos solo entienden el lenguaje binario o el código máquina, que consiste en ceros y unos. Es decir, para realizar cualquier acción, utilizan únicamente este tipo de lenguaje.

Lenguajes de Programación de Alto Nivel

Son aquellos lenguajes de programación más afines al lenguaje natural que al lenguaje máquina. Son completamente independientes de la arquitectura del hardware de la computadora. Por lo tanto, un programa escrito con un lenguaje de programación de alto nivel se puede utilizar, en general, en cualquier otra computadora.

Lenguaje de Programación de Nivel Medio

Es una mezcla entre los dos anteriores. A este tipo de lenguajes pertenecen aquellos que llevan a cabo acciones como acceder a registros del sistema o usar direcciones de memoria (características de los lenguajes de bajo nivel), pero a la vez efectúan operaciones de los lenguajes de alto nivel. Un ejemplo de este tipo es el lenguaje de programación C.

Gramática Formal

Es precisa y definida, típicamente usada para el lenguaje de programación de una computadora. Una gramática formal es como la gramática del castellano o del inglés, en el sentido de que recoge todas las normas y reglas de un lenguaje formal. Sin embargo, estas gramáticas formales especifican un lenguaje de una manera rigurosa y matemática. No son válidas para el castellano y el inglés porque son 'demasiado rigurosas' para lenguajes con tantos matices y complicaciones. No obstante, estas gramáticas son ideales para especificar lenguajes de programación (como Pascal, C, C++, Java, etc.).

Compiladores

Un compilador es un programa que traduce el código de alto nivel a código binario. Es, por tanto, parecido al ensamblador, pero mucho más complejo, ya que las diferencias entre los lenguajes de alto nivel y el código binario son muy grandes.

El programa escrito en lenguaje de alto nivel se denomina programa fuente o código fuente. El programa traducido a código binario se llama programa objeto o código objeto. Por lo tanto, el compilador se encarga de convertir el programa fuente en un programa objeto.

Una vez que se ha obtenido el programa objeto, ya no es necesario volver a realizar la traducción (o compilación), a menos que se haga alguna modificación en el programa fuente, en cuyo caso habría que volver a compilarlo.

El programa objeto, una vez generado, puede ejecutarse en la máquina en la que fue compilado, o en otra de similares características (procesador, sistema operativo, etc.).

Intérpretes

El intérprete es un programa que traduce el código de alto nivel a código binario pero, a diferencia del compilador, lo hace en tiempo de ejecución. Es decir, no se hace un proceso previo de traducción de todo el programa fuente a binario, sino que se va traduciendo y ejecutando instrucción por instrucción.

Entradas relacionadas: