ventajas una sobre semejanzas realizar qué programación programacion lenguaje interpretes interprete hay entre ejemplos diferencia compiladores compilador comparativa parsing compiler-construction

parsing - una - semejanzas entre compiladores e interpretes



¿Diferencia entre compiladores y parsers? (7)

Por concepto / función / implementación, ¿cuáles son las diferencias entre compiladores y analizadores?


El compilador siempre tiene un analizador dentro. El analizador simplemente procesa el idioma y devuelve la representación en árbol del mismo, el compilador genera algo de ese árbol, códigos de máquina reales u otro idioma.


En general, el analizador es una parte del compilador, pero el compilador está diseñado para convertir el script recibido generalmente en código legible por la máquina o, a veces, en otro idioma.



Un analizador simplemente lee un texto en una representación interna, más abstracta, a menudo un árbol o gráfico de algún tipo.

Un compilador traduce tal representación interna a otro formato. En la mayoría de los casos, esto significa convertir el código fuente en programas ejecutables. Pero el objetivo no tiene que ser un código de máquina. También puede ser otro lenguaje de programación; El compilador todavía sería un compilador. Obviamente, un compilador necesita un analizador para leer realmente su entrada.


Un compilador es un tipo especial de programa de computadora que traduce un archivo de texto legible por humanos en una forma que la computadora puede entender más fácilmente. En su nivel más básico, una computadora solo puede entender dos cosas, un 1 y un 0. En este nivel, un humano operará muy lentamente y encontrará la información contenida en la larga cadena de 1s y 0s incomprensible. Un compilador es un programa de computadora que salva esta brecha.

Un analizador es una pieza de software que evalúa la sintaxis de un script cuando se ejecuta en un servidor web. Para los lenguajes de script utilizados en la web, el analizador funciona como un compilador que podría funcionar en otros tipos de entornos de desarrollo de aplicaciones. Los analizadores se usan comúnmente en el desarrollo de scripts porque pueden evaluar el código cuando se ejecuta el script y no requieren que el código sea compilado. primero.


Un compilador se compone a menudo de varios componentes, uno de los cuales es un analizador. Un conjunto común de componentes en un compilador es:

  • Lexer - divide el programa en palabras.
  • Analizador: compruebe que la sintaxis de las oraciones sea correcta.
  • Análisis semántico - verifica que las oraciones tengan sentido.
  • Optimizador - edita las oraciones por brevedad.
  • Generador de código: genera algo con significado semántico equivalente utilizando otro vocabulario. Para añadir un poco:

Como se mencionó en otra parte, small C es un compilador decente recursivo que genera código a medida que se analiza. Básicamente análisis sintáctico, análisis semántico y generación de código en una sola pasada. Como recuerdo, también se incluyó en el analizador.

Hace mucho tiempo, escribí un compilador de C (en realidad, varios: la familia Introl-C para microcontroladores) que usaba decente recursivo e hizo la sintaxis y el control semántico durante el análisis y produjo una representación en árbol del programa desde el cual se generó el código.

Hoy, estoy trabajando en un compilador que hace código de fuente -> tokens -> AST -> IR ->, tal como lo describí anteriormente.


Un analizador toma datos sin procesar y los parses en una estructura de árbol. Este árbol de sintaxis se pasa luego al generador, que lo convertirá en lo que se supone que debe generar.

Entonces, un analizador es parte de un compilador.