¿Qué es el lenguaje formal?

Un lenguaje formal es un lenguaje abstracto utilizado para expresar definiciones, instrucciones y lógica. Consiste en un determinado conjunto de cadenas de caracteres o símbolos (palabras), que a su vez se forman a partir de determinados caracteres (alfabeto, símbolos). Los lenguajes formales se utilizan en los campos de la informática, las matemáticas y la lingüística.

La definición es:

Un lenguaje formal L sobre un alfabeto Σ es un subconjunto del casco de Kleene del alfabeto: L⊆Σ*.

La envolvente de Kleene Σ* define el conjunto de todas las palabras que pueden estar compuestas por los caracteres contenidos en el alfabeto A mediante cualquier concatenación (concatenación de cadenas de caracteres). Se incluye la palabra vacía (una cadena de caracteres de longitud 0).

En general, en los lenguajes formales también se distingue entre sintaxis y semántica. La sintaxis describe la gramática del lenguaje, es decir, las reglas con las que se compone el lenguaje. La semántica, en cambio, describe el significado de las palabras. La frase: "La lámpara cierra la ventana con una vaca" es sintácticamente correcta, pero semánticamente carece de sentido. Por eso, las lenguas necesitan la correcta cooperación de sintaxis y semántica.

Lenguaje formal en informática

En informática teórica, los lenguajes formales se utilizan para la ModelizaciónSe utilizan para el tratamiento de datos, el procesamiento de la información y la construcción de compiladores. Se definen mediante determinados procedimientos de sustitución. Son reglas sobre cómo pueden combinarse los caracteres del alfabeto. Los procedimientos de sustitución más comunes son, por ejemplo, las gramáticas de Chomsky, los sistemas semi-Thue o los sistemas Lindenmayer.

En informática aplicada, el lenguaje formal se utiliza en forma de lenguajes de programación. El código fuente (las instrucciones completas en forma de lenguaje de programación) puede crearse en un simple editor de texto. Éste debe traducirse a un lenguaje de máquina adecuado (un código binario). Dependiendo del momento de la traducción, existen varias posibilidades para ello. Se utiliza un compilador para traducir el código fuente antes de ejecutar el programa. Un compilador JIT (just-in-time compiler) o un intérprete traducen el código fuente mientras se ejecuta el programa. También es posible una combinación de ambos y se utiliza, por ejemplo, en el lenguaje de programación Java.

Los lenguajes de programación pueden dividirse en distintas clases, los llamados paradigmas de programación. Las tres aplicaciones más conocidas del lenguaje formal son la programación orientada a objetos, la funcional y la imperativa.

A Programación orientada a objetos basada en datos y objetos. El objeto pertenece a una clase superior, tiene ciertos atributos y se le asignan varios métodos.

Con un programación funcional, todos los componentes del programa informático son exclusivamente funciones.incluso el propio programa. Las funciones pueden vincularse a funciones de orden superior, como en matemáticas.

De un La programación imperativa se utiliza cuando el programa informático consta de instrucciones.que indican al ordenador exactamente qué hacer y cuándo. Para ello se utilizan bucles o ramas como estructuras de control.

¿Cuáles son ejemplos de lenguaje formal?

1. lenguajes de programación como:

  • C++, Java, JavaScript y Python como programación orientada a objetos
  • Haskell, LISP y Scheme como programación funcional
  • ALGOL, Cobol, C y FORTRAN como programación imperativa

2. lenguaje de palíndromos: un palíndromo es una palabra que es idéntica cuando se escribe hacia delante y hacia atrás. La expresión formal es:

  • Un palíndromo es una palabra u sobre el alfabeto Σ con la propiedad u=uR.
  • El operador R invierte la cadena de caracteres.

3ª secuencia Morse (también llamada secuencia Morse-Thue, secuencia Thue-Morse): es una secuencia binaria infinita formada según reglas concretas. Como lenguaje formal, comienza por 0, 01, 0110, 01101001, 0110100110010110...