Despre compilatori și interpreți

este
Dacă ați visat întotdeauna să vă scrieți propriul limbaj de programare, bine ați venit. Aici cu siguranță vei găsi ceva interesant pentru tine.

yawnt scrie următoarele:

Și aici puteți obține un grant pentru o perioadă de testare a Yandex.Cloud. Este necesar doar să introduceți „Habr” în câmpul „parolă secretă”.

Citind acum

Detectarea unei mașini virtuale în C#: nivelul 1

Unde să plasați containerele: pe un server dedicat sau pe o mașină virtuală?

[Sankt Petersburg, Anunț] Întâlnire CodeFreeze cu dezvoltatorul PHP Dmitry Stogov despre structura internă a mașinii virtuale PHP

Comentarii 55

Cât durează cursul?Este prima dată când cursul se desfășoară în acest format și stabilim termenele în mod dinamic pentru a se potrivi volumului maxim de lucru, așa că este dificil de spus, dar în scopuri de planificare estimăm aproximativ12-18 luni.

Nu este aceasta o activitate uriașă, de obicei realizată de o întreagă echipă de programatori?Răspunsul scurt este da. Acesta este un curs de programare la nivel „Grandmaster”pentru ingineri software seniori de clasă mondială. Va fi o muncă foarte dificilă și atrăgătoare.

Băieți foarte noroi... Nu există informații despre ce fel de birou, sub acoperișul cui, ce face și ce obiective urmăresc. Cursul este destul de greu...

Și scopul cursului... Un compilator complet C++11 fără dependențe externe într-un an și jumătate, 10 ore pe săptămână (după cum scrie în întrebările frecvente) pentru un dezvoltator?! Astfel de camarazi nu au nevoie de certificate...

Pare fie o modalitate originală de a găsi programatori C++ talentați, fie o înșelătorie grandioasă. Dacă din 10 mii de programatori înscriși (un avertisment demn de remarcat, într-un proiect educațional ar spune student), cel puțin 1% dintre participanți vor aducefuncționează până la capăt, atunci vor primi gratuit aproape o sută de implementări ale standardului C++ 11, cu costul doar al întreținerii site-ului.

Cu greu o cablare: cine are nevoie de o sută de implementări amatori diferite ale aceluiași TK, în prezența analogilor liberi?

O modalitate originală de a găsi programatori talentați - s-ar putea să fie. Ei bine, orice program educațional, inclusiv unul universitar, este același.

„Astfel de camarazi nu au nevoie de certificate” - deloc. Una este când un prietenpoatesă scrie un compilator doar într-un an, alta este când un prietenscrieun compilator numai într-un an. Unii Intel și ARM vor smulge cu siguranță astfel de camarazi cu mâinile lor.

Puteți identifica unde este linia dintre implementările pentru amatori și non-amatori? Din sute de implementări, va fi ceva din care să alegeți...

10 ore pe săptămână chiar și doi ani, ca să spunem ușor, este extrem de mic pentru implementarea unui compilator C++ 11 auto-găzduit cu stdlib, STL, lanț de instrumente și fără dependențe externe... Ca să nu mai vorbim de faptul că 10 ore pe săptămână saptamana este minim, aceasta 2 ore pe zi, inclusiv 5 zile lucratoare. Și asta pentru 1,5 ani? 0_o

În general, o glumă clară. A devenit chiar interesant. Am ajuns la caseta mea de spam. Sa vedem ce se va intampla...

De dragul interesului... Estimați costurile forței de muncă pentru scrierea, așa cum se numește ei, a unei sarcini de încălzire și comparați...

Această carte este despre analizatori, nu despre compilatori.

Deci ce, care sunt capitolele? Sunt superficiali. Nu este vorba despre teoria din spatele tuturor, ci despre metode specifice. Ce să fac, de exemplu, conform acestei cărți, dacă nu am registre în procesor? Aici, analiza este descrisă cu putere acolo, cuprinzător (deși mai puțin strict decât în ​​cartea lui Aho și Ullman în 1977, din care a crescut cartea cu dragonul însuși). Ohgenerarea codului este cumva greșită. Aceste metode sunt suficiente pentru a scrie ceva, dar în mod clar nu sunt suficiente pentru a scrie un generator de cod bun. DCPL, în comparație cu această prezentare, oferă abordări mai generale cu care vă puteți exprima cerințele specifice pentru cod (aceeași analiză a indicatorului, de exemplu). Aici... Prima parte a cărții dragonului stabilește, de asemenea, în linii mari problemele parsării și vă puteți scrie propriul analizator pe baza acestuia. Dar a doua parte nu este suficient de fundamentală, IMHO. În plus, nu se vorbește despre sisteme cu tipuri polimorfe și deduse automat care sunt necesare pentru lucrul cu limbaje moderne, despre funcții de ordin superior, șabloane etc.