Repetiré textualmente lo que mi profesor, amigo y mentor de compiladores me dijo una vez: Los compiladores es LA clase para aprender realmente bien a comprender y vincular profundamente los conceptos de informática.
Tiene muchos conocimientos básicos que no se enseñan ni se aprenden desde el principio, ya que primero debes conocer muchas otras cosas.
Puedes sobrevivir como un buen desarrollador toda tu vida sin tener que escribir un compilador. La mayoría del mundo realmente no sabe lo increíble que es simplemente presionar F5 y obtener un programa de trabajo. Escribir un compilador, o al menos aprender a hacerlo, le mostrará cuántas cosas funcionan en una computadora.
- ¿Cuál es el mejor software de código abierto para crear una aplicación?
- Dónde encontrar freelancers en Bangalore para el desarrollo de aplicaciones web y móviles
- ¿Cuáles son las mejores empresas de desarrollo de aplicaciones móviles en los Estados Unidos?
- ¿Cuál es el mejor desarrollo de aplicaciones móviles en Singapur?
- Cómo evitar que las aplicaciones se ejecuten en un momento determinado
Déjame dar un ejemplo:
Orden de operadores y cómo la computadora realiza la aritmética.
Puede memorizar el orden de las operaciones, / y * vienen antes de + o -.
Si intenta usar 1/0 + 2, dará como resultado un error de división por cero a menos que agregue una parentesis y haga 1 / (0 + 2).
Ahora, esto se puede saber memorizándolo literalmente de la tabla de precedencia de operadores en un libro, pero por qué fue elegido y por qué funciona puede parecer mágico.
Al escribir un compilador e intentar analizar una cadena escrita humana en algo que la máquina puede resolver, aprenderá que se puede hacer convirtiéndola en un árbol de sintaxis abstracta a través de un algoritmo como el algoritmo de desviación de Dijkstra . La razón de la precedencia del operador es porque los operadores están desglosados en un árbol.
Entonces aprenderá cómo y por qué funciona la precedencia del operador, resolverá un problema complejo que lo convierte en un mejor desarrollador y se dará cuenta humildemente de que Dijkstra derrotaría a Chuck Norris cualquier día.
Hay muchos detalles como este: sintaxis de idioma, administración de memoria, cómo funcionan los ejecutables, velocidad de ejecución, optimizaciones, por qué necesita escribir un punto y coma al final de las líneas en muchos idiomas, etc.
Le facilitará la vida a largo plazo y lo ayudará a ver con mayor claridad cómo funcionan las computadoras. Incluso si no trabaja en compiladores, hace que muchos conceptos dejen de ser confusos o confusos.