Lenguaje objeto
# Lenguaje objeto

Un lenguaje objeto es un lenguaje que es objeto de estudio en varios campos, incluyendo lógica, lingüística, matemáticas e informática teórica. El lenguaje usado para hablar de un lenguaje objeto se denomina metalenguaje. Un lenguaje objeto puede ser formal o natural.

## Formas de Lenguaje Objeto

### Lenguajes formales

La lógica matemática y la lingüística hacen uso de metalenguajes, que son lenguajes que describen la naturaleza de otros lenguajes. En la lógica matemática, el lenguaje objeto es normalmente un lenguaje formal. El lenguaje que un metalenguaje describe es el lenguaje objeto. Se llama de esta forma porque el lenguaje es el objeto en discusión usando el metalenguaje.

Por ejemplo, alguien que dice "En francés, se dice Bonjour para saludar a alguien" usa el español como un metalenguaje para describir el francés

## Lenguajes de ordenador

Hay dos formas en las que el término lenguaje objeto puede ser empleado en computación: un lenguaje que es objeto de la especificación formal y un lenguaje que es el objeto, u objetivo, de un compilador o interpretador.

### Especificación formal

Los lenguajes de programación son lenguajes objeto del metalenguaje en el que su especificiación está escrita. En informática esto se refiere como el lenguaje de especificación. La notación de Backus-Naur fue uno de los primeros lenguajes de especificación.

Cuando los compiladores están escritos empleando sistemas como lex y Yacc, las reglas que el programador escribe parecen una especificación formal, pero se consideran una implementación en vez. Muchas implementaciones de lenguajes de programación no son estrictamente lo mismo que su especificación, añadiendo características o haciendo decisiones de diseño independientes de la implementación.

**Código objeto**

En su nivel más básico, los computadores actúan sobre lo que se les da a través de un conjunto limitado de instrucciones que sus CPUs entienden. En los primeros computadores, esto significaba que los programadores llegaban a programar empleando código binario directamente. Como esto requiere práctica y mucha paciencia, los lenguajes de programación posteriores han puesto grandes esfuerzos en simplificar el trabajo del programador. Por ejemplo, un lenguaje de programación de alto nivel permite al programador asignar una valor a una variable sin especificar una dirección de memoria o una instrucción de la CPU.

En este contexto, el lenguaje de programación de alto nivel es el lenguaje fuente, que es traducido mediante un compilador a código objeto que la CPU puede leer directamente. Este código objeto será el lenguaje objeto, y variará dependiendo de qué CPU está recibiendo instrucciones.

El lenguaje objeto en este contexto significa algo como "lo que el programador trata de conseguir". Si los lenguajes fuente y objeto son vistos como lenguajes formales, lo que el compilador hace es interpretar la fuente a lenguaje objetivo.

El lenguaje objeto en este contexto es sinónimo de lenguaje objetivo. El lenguaje objeto de una traducción normalmente es lenguaje máquina, pero puede ser de otro tipo, como lenguaje ensamblador.

Como el lenguaje objeto de compilación es normalmente lenguaje máquina, el término archivo objeto significa un archivo que contiene instrucciones máquina, y a veces el programa traducido se llama simplemente objeto.

El lenguaje objeto no debe confundirse con lenguaje orientado a objetos, que es un tipo de lenguaje de programación que organiza el entorno del programador en objetos que pueden ser usados de modo similar a la forma drag-and-drop.

## Expresiones en lenguaje objeto

### Símbolos

Un símbolo es una idea, abstracción, concepto, o tipo del cual puede haber marcas o una configuración de marcas que forman un patrón particular. El término símbolo en uso común se refiere a la simbolización de una idea, si bien en el lenguaje formal estudiado en matemáticas y lógica el término símbolo símbolo se refiere a la idea y las marcas se consideran un caso concreto del símbolo.

## Fórmulas

En los lenguajes formales usados en lógica matemática e informática, una fórmula bien formada o fórmula es una idea, abstracción o concepto expresado usando los símbolos y reglas de formulación (también llamadas gramática formal) de un lenguaje formal particular. Decir que una cadena de símbolos $S$ es una fórmula bien formada con respecto a una gramática $G$ dada es equivalente a decir que $S$ pertenece al lenguaje generado por $G$.

### Sistema formal

Un sistema formal es la unión de un lenguaje formal y un sistema deductivo que consiste en un conjunto de reglas de inferencia y/o axiomas. Un sistema formal se usa para obtener expresiones a partir de expresión/es previamente en el sistema. Estas expresiones se llaman axiomas en el caso de los que se presuponían ciertos y teoremas para aquellos que hayan sido derivados. Un sistema formal puede ser formulado y estudiado por sus propiedades intrínsecas, o puede ser dado como una descripción del fenómeno externo.

### Teoremas

Un teorema es un símbolo o una cadena de símbolos que es obtenido usando un sistema formal. La cadena de símbolos es una consecuencia lógica de los axiomas y reglas de inferencia del sistema

### Pruebas formales

Una prueba formal o derivación es una secuencia finita de proposiciones (llamadas fórmulas bien formadas en un lenguaje formal) siendo que cada una de ellas es un axioma o se infiere de otras sentencias. La última afirmación de la secuencia es un teorema o sistema formal. El concepto de deducción natural es una generalización del concepto de prueba.

### Teoría

Una teoría es un conjunto de sentencias en lenguaje formal.

