2009-10-13 9 views
8

Czy ktoś wie o kursach online/wykładach uniwersyteckich, które składają się na typowy kurs kompilatora? Miałem teorię informatyki, ale niestety moja szkoła nie oferowała kursu z budowy kompilatora.samouk kursy kompilacji/dobre kompilatory wprowadzające?

Wiem, że tam są wykłady; Miałem nadzieję na zalecenia dotyczące szczególnie dobrych ofert.

Są też książki dla początkujących w tej dziedzinie? Coś poza smoczą książką. Poziom początkujący jest w porządku, wiem, że na rynku jest dużo średnio-zaawansowanych tekstów.

Dzięki!

+1

Duplikat (wiele razy) http://stackoverflow.com/questions/1669/learning -to-write-a-compiler i inne – cletus

+0

Nigdy nie widziałem lepszego wyjaśnienia kompilacji niż w książce Smoka. Możesz zrobić coś gorszego, niż to zrobić. –

+1

Nie zgadzam się. Myślę, że nowoczesne wdrożenie kompilatora w {ML, Java, C} autorstwa Andrew Appel jest lepsze niż książka o Dragon. Książka smoka jest w porządku jako odniesienie, ale myślę, że jeśli szukasz wyłącznie samokształcenia, nowoczesne wdrażanie kompilatora jest bardziej kompletne i spójne. – Gian

Odpowiedz

8

Edit: w przypadku pytań to tak nie dostać zamknięty, nie sprawdzić to duplicate SO posting który odpowiada na pytanie w bardziej wyczerpujący sposób.

Kilka ressources na miejscu OpenCourseWare MIT:

6.035 Computer Language Engineering
6.827 Multithreaded Parallelism: Languages and Compilers

Były prawdopodobnie wzdłuż linii, co miałeś na myśli. Zawiera również niektóre filmy z wykładów.
Te ostatnie ... pozytywnie kurs na poziomie magisterskim. Nacisk kładziony jest także na wielowątkowość niż na tradycyjną sieć kompilującą. (Ale potem znowu, aby efektywnie ciąć wątki kodu, trzeba mieć przyzwoitą znajomość semantyki wyrażonej w oryginalnym programie ...)

+0

Czy ktoś ma odpowiedzi z tego duplikatu wysyłania w formacie SO? Zostało usunięte z powodu moderacji. – TravisG

5

Możesz sprawdzić ten kurs: http://ecee.colorado.edu/ecen4553

informacje o kursie języków programowania

wysokiego poziomu jak Python uczynić programowanie wiatr, ale jak one działają? Pomiędzy Pythonem a maszyną jest duża luka między instrukcjami dla nowoczesnych komputerów. Dowiedz się, jak tłumaczyć programy w języku Python: , aż do języka angielskiego w procesorze Intel x86 .

Większość kursów kompilatora uczyć jedną fazę kompilatora na raz, takich jak parsowania, analizy semantycznej i przydziału rejestru. Problem polegający na tym, że podejście jest trudne, aby zrozumieć, jak cały kompilator pasuje do siebie razem i dlaczego każda faza jest zaprojektowana tak, jak jest. Zamiast tego, każdy tydzień tygodniowo wdrażamy kolejno większy podzbiór języka Python. Pierwszy podzbiór jest malutkim językiem instrukcji arytmetycznych i do czasu, gdy skończy się język zawiera funkcje pierwszorzędne, obiekty, dziedziczenie i .

Wymagania wstępne: Płynność w co najmniej jednym języku programowania (Java, C, C++, Python itp.). Studenci będą dużo programować w języku Python, ale wcześniejsza znajomość języka Python nie jest wymagana. Kurs rozpocznie się od awarii kursu na Pythonie i Python jest jednym z najprostszych języków do nauki. Wcześniejsza znajomość języka asemblerowego pomaga, ale nie jest wymagana.

+0

Dzięki za link. Będę musiał sprawdzić, czy ma on więcej informacji o kursie online niż na stronie internetowej. Wygląda na to, że wiele materiałów do wykładów jest niedostępnych lub ukrytych przed publiczną prezentacją. – larryq

+0

Nowy link: http://ecee.colorado.edu/ecen4553/fall10/ – prasopes

+1

@prasopes, thanks. Dodałem link bez roku, ponieważ w przyszłości może się on zepsuć. –

Powiązane problemy