Questions sur les programmes qui lisent du code dans une langue (langue source) et le traduisent en un programme équivalent dans une autre langue (langue cible).
Dans la conception du compilateur, pourquoi la récursion gauche devrait-elle être éliminée dans les grammaires? Je lis que c'est parce que cela peut provoquer une récursion infinie, mais n'est-ce pas également vrai pour une grammaire récursive correcte?
Je souhaite analyser les langues spécifiques au domaine défini par l'utilisateur. Ces langages sont généralement proches des notations mathématiques (je n'analyse pas un langage naturel). Les utilisateurs définissent leur DSL dans une notation BNF, comme ceci: expr ::= LiteralInteger | ( expr ) | expr + expr | expr * …
Le langage d'assemblage est converti en langage machine par l'assembleur. Pourquoi un compilateur convertirait-il un langage de haut niveau en assembleur? Ne peut-il pas convertir directement du langage de haut niveau en code machine?
Selon la page Wikipédia sur l'attribution statique unique (SSA) , SSA est utilisée par de grands projets bien connus tels que LLVM, GCC, MSVC, Mono, Dalvik, SpiderMonkey et V8 tandis que la page sur les projets utilisant le style de passage continu (CPS) fait un peu défaut en comparaison. J'ai …
Il est possible d'analyser un document en un seul passage depuis une machine d'état. Quel est l'avantage d'avoir deux passes, à savoir. avoir un lexer pour convertir du texte en jetons, et avoir un analyseur pour tester les règles de production sur ces jetons? Pourquoi ne pas avoir un seul …
Je travaille sur un compilateur pour un langage concaténatif et je voudrais ajouter un support d'inférence de type. Je comprends Hindley – Milner, mais j'ai appris la théorie des types au fur et à mesure, donc je ne sais pas comment l'adapter. Le système suivant est-il solide et inférable? Un …
Y a-t-il une différence entre les deux? Selon le livre d'Ullman , les compilateurs convertissent une langue en une autre langue (généralement de bas niveau), tout comme un assembleur. En quoi les deux sont-ils différents?
Je connais l'idée de l' élimination de base de la récursivité de la queue, où les fonctions qui renvoient le résultat direct d'un appel peuvent être réécrites sous forme de boucles itératives. foo(...): # ... return foo(...) Je comprends également que, comme cas spécial, la fonction peut toujours être réécrite …
La sortie d'un analyseur doit-elle être un arbre ou pourrait-elle également être un graphique général? De plus, existe-t-il un langage existant ou un langage plausible qui utilise une représentation graphique générale au lieu d'arbres pour leur syntaxe?
Je travaille souvent avec lexer / parsers , par opposition à un combinateur d'analyseurs et je vois des gens qui n'ont jamais suivi de cours d'analyse, poser des questions sur l'analyse des données binaires. En règle générale, les données sont non seulement binaires, mais également contextuelles. Cela conduit à n'avoir …
J'ai un problème avec cet exercice: Soit G la grammaire ambiguë suivante pour le λ-calcul: E → v | λv.E | EE | (E) où E est le symbole non terminal unique, λv.E représente l'abstraction par rapport à la variable v dans E et EE représente l'application. Définissez une grammaire …
Je pense comprendre comment la déforestation consomme et produit une liste en même temps (à partir d'une fonction de pliage et de dépliage - voir cette bonne réponse sur CodeReview ici ), mais quand je l'ai comparé avec l' entrée de wikipedia sur la technique dont il a parlé de …
J'étudie récemment la conception de compilateurs. J'ai appris l'existence de deux types de grammaire: la grammaire LL et la grammaire LR. Nous savons également que chaque grammaire LL est LR, c'est-à-dire que la grammaire LL est un sous-ensemble approprié de la grammaire LR. Le premier est utilisé dans l'analyse descendante …
Ceci est une question du Dragon Book. Voici la grammaire: S→AaAb∣BbBaS→AaAb∣BbBaS \to AaAb \mid BbBa A→εA→εA \to \varepsilon B→εB→εB \to \varepsilon La question demande comment montrer qu'il s'agit de LL (1) mais pas de SLR (1). Pour prouver qu'il s'agit de LL (1), j'ai essayé de construire sa table d'analyse, …
Dans un commentaire à Learning F #: Quels livres utilisant d'autres langages de programmation peuvent être traduits en F # pour apprendre des concepts fonctionnels? Makarius a déclaré: Notez que l'approche "CPS" a fait un grand tort aux performances en SML / NJ. Son modèle d'évaluation physique viole trop d'hypothèses …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.