Aplazaré el “qué” en esta pregunta, ya que es trivial mirar hacia arriba, y solo responderé el “por qué”.
Hay muchas razones por las que “se necesita”.
- Es una asignatura central de informática. Si está interesado en la teoría de la computación, debe conocer la teoría de los autómatas y la teoría del lenguaje formal (están estrechamente relacionadas).
- Los autómatas tienen muchas aplicaciones indefinidamente. Por ejemplo, los compiladores son un ejemplo de una aplicación que implementa máquinas de estado sofisticadas para leer e interpretar código de programación en su lenguaje de máquina.
- Los autómatas pueden ser explorados por clase (cuántas reglas tienen, sus capacidades o estructura) y los problemas que pueden resolver. Por ejemplo, un autómata pushdown puede resolver más problemas que un autómata finito determinista (aceptan en un conjunto de idiomas más grande que este último). Estas máquinas se pueden construir en una jerarquía. Esto es fundamental para el lado “computable” de la informática teórica ya que en ese extremo de la teoría de la computación, estamos interesados en lo que se puede resolver mediante algoritmo o no. Resolver un problema algorítmicamente depende del modelo de cálculo utilizado. Esto se basa elegantemente en la noción de una máquina de Turing y el estudio de la indecidibilidad.
Hay muchas otras razones por las cuales es necesario. Este es a menudo un tema que introduce uno a este fin de la informática teórica, por lo que a menudo es muy importante en el estudio de la informática.
- Se nos dan probabilidades [matemáticas] P (A) = P (B) = P (C) \ geq 2/3 [/ matemáticas] y sabemos que [matemáticas] P (A \ cap B \ cap C) = 0 [/ mates]. ¿Qué podemos decir sobre [matemáticas] P (A) [/ matemáticas]?
- Cómo analizar un archivo de texto en Python y obtener la suma de los números presentes en el archivo
- ¿Qué es la lógica formal en informática?
- ¿Son los algoritmos y las fórmulas dos cosas diferentes y mutuamente excluyentes? ¿Cuál es o no es la diferencia?
- Cómo demostrar que existe un conjunto de movimientos para que todos los elementos de la matriz se conviertan en 0, donde en un movimiento tienes que elegir dos elementos distintos de cero y restar uno de los dos dada una condición
¡Espero que esto ayude!