Pytania otagowane jako compilers

Pytania dotyczące programów, które czytają kod w jednym języku (język źródłowy) i tłumaczą go na równoważny program w innym języku (język docelowy).

1
Wnioskowanie o rodzajach uściślenia
W pracy miałem za zadanie wnioskować o pewnych typach informacji o dynamicznym języku. Przepisuję sekwencje instrukcji na letwyrażenia zagnieżdżone , tak jak poniżej: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 


3
Pierwsze kroki z analizą programu
Szukam zasobów na początek analizy programu . Jedyną książką, jaką znalazłem na ten temat, jest książka Nielson i Nielson . Poza tym wydaje się, że istnieją tylko książki „kompilatorowe”, w których „analiza programu” byłaby rozdziałem lub czymś podobnym. Czy ludzie znają inne zasoby?

2
Teoretyczna minimalna liczba rejestrów dla nowoczesnego komputera?
Podczas studiów licencjackich wziąłem kurs na kompilatory, w którym napisaliśmy kompilator, który kompiluje programy źródłowe w zabawnym języku podobnym do języka Java z językiem montażu zabawek (dla którego mieliśmy tłumacza). W projekcie przyjęliśmy pewne założenia dotyczące maszyny docelowej ściśle związane z „prawdziwymi” natywnymi plikami wykonywalnymi, w tym: stos czasu wykonywania, …

1
Biorąc pod uwagę ciąg i CFG, jakie znaki mogą podążać za ciągiem (w sentymentalnych formach CFG)?
Niech ΣΣ\Sigma będzie zbiorem terminali, a NNN zbiorem nieterminalnych symboli gramatyki bez kontekstu GGG. Powiedzieć, że posiada ciąg a∈(Σ∪N)+a∈(Σ∪N)+a \in (\Sigma \cup N)^+ taki, że w którym i są zdaniowymi formy .x , y ∈ ( Σ ∪ N ) ∗ S ( G ) Gxay∈S(G)xay∈S(G)x a y \in \mathcal{S}(G)x,y∈(Σ∪N)∗x,y∈(Σ∪N)∗x,y\in …

2
Skompiluj sam język programowania
Jestem studentem informatyki. Chcę stworzyć własny język programowania (podstawowy język z kilkoma instrukcjami). Wiem, jak zrobić analizator składniowy, już to zrobiłem w Perlu. W artykule przeczytałem coś o kompilatorze, kompilator jest zrobiony sam w sobie. Na przykład kompilator C jest napisany w C. Jak to możliwe? Mogę stworzyć własny język, …

1
Jaki jest nieskomplikowany przykład statycznego sprawdzania typu, który jest zbyt konserwatywny?
W Concepts in Programming Languages John Mitchell pisze, że statyczne sprawdzanie typów jest z konieczności konserwatywne (zbyt surowe) z powodu problemu zatrzymania. Podaje jako przykład: if (complicated-expression-that-could-run-forever) then (expression-with-type-error) else (expression-with-type-error) Czy ktoś może udzielić nieskomplikowanej odpowiedzi, która naprawdę byłaby kwestią praktyczną? Rozumiem, że Java zezwala na dynamicznie sprawdzane rzutowania …

3
Równoważność analizy przepływu danych, abstrakcyjna interpretacja i wnioskowanie o typie?
Odpowiedź Babou na ostatnie pytanie przypomina mi, że kiedyś myślę, że przeczytałem artykuł na temat równoważności (zarówno pod względem faktów, które można wywnioskować lub udowodnić, jak i złożoności czasowej działania algorytmu wnioskowania) analizy przepływu danych , abstrakcyjna interpretacja i wnioskowanie typu . W niektórych pod-przypadkach (jak między kontekstową analizą przepływu …

3
Schemat T kompilatora krzyżowego
Studiuję Bootstrapping z Red Dragon Book Compilers i znalazłem schemat T dla kompilatora krzyżowego dość mylący. Nie rozumiem, co należy rozumieć przez „Uruchamianie kompilatora 1 do kompilatora 2”. Czy ktoś może podać jakieś lepsze wyjaśnienie, analogię lub przykład odnoszący się do jakiegoś kompilatora w świecie rzeczywistym? Najpierw notacja. Przez Znaczy …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.