Nauka pisania kompilatora




*Preferowane języki* : C / C ++, Java i Ruby.


Szukam kilka pomocnych książek / samouczki, jak napisać własny kompilator po prostu do celów edukacyjnych. Jestem najbardziej znane z C / C ++, Java, Ruby, więc wolę zasobów, które dotyczą jednego z tych trzech, ale każdy dobry zasób jest dopuszczalne.
Big Lista zasobami:



* [Ramy Nanopass dla Compiler Edukacji](http://www.cs.indiana.edu/~dyb/pubs/nano-jfp.pdf) ¶
* [Zaawansowane Compiler Projektowanie i wdrażanie](https://rads.stackoverflow.com/amzn/click/1558603204) $
* [Podejście do przyrostowego Compiler Construction](http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf) ¶
* [ANTLR 3.x Video Tutorial](http://javadude.com/articles/antlr3xtut)
* [Podstawy Projektowania Compiler](http://www.diku.dk/~torbenm/Basics/)
* [Budowanie Parrot Compiler](http://www.onlamp.com/pub/a/onlamp/2004/04/15/parrot_compiler_construction.html)
* [Podstawy kompilatora](http://www.cs.man.ac.uk/~pjj/farrell/compmain.html)
* [Kompilator Budowa](https://rads.stackoverflow.com/amzn/click/0201403536) $
* [Kompilator Projektowanie i Budowa](https://rads.stackoverflow.com/amzn/click/0442275366) $
* [Crafting kompilator z C](https://rads.stackoverflow.com/amzn/click/0805321667) $
* [Crafting tłumacze](http://craftinginterpreters.com/)
* [Design w kompilator C](http://www.holub.com/software/compiler.design.in.c.html) ¶
* [Kompilatory: zasady, techniki i narzędzia](https://rads.stackoverflow.com/amzn/click/0321486811) $ - aka ["The Dragon Book"](http://en.wikipedia.org/wiki/Compilers:_Principles%2C_Techniques%2C_and_Tools) ; powszechnie uważane za „książka” do pisania kompilatora.
* [Inżynieria kompilator](https://rads.stackoverflow.com/amzn/click/012088478X) $
* [Podstawy języków programowania](http://www.cs.indiana.edu/eopl/)
* [Flipcode Artykuł Archive](http://flipcode.com/archives/articles.shtml) (poszukaj "Wdrożenie Scripting Engine Jan Niestadt")
* [Gra Scripting Mastery](https://rads.stackoverflow.com/amzn/click/1931841578) $
* [Jak zbudować maszynę wirtualną od podstaw w języku C #](http://www.codeproject.com/KB/recipes/B32Machine1/VMCS.pdf) ¶
* [Wdrożenie Functional języki](http://research.microsoft.com/~simonpj/papers/pj-lester-book/)
* [Języki programowania wykonawczych (z BNFC)](http://www1.digitalgrammars.com/ipl-book/)
* [Wdrażanie przy użyciu języków programowania C # 4.0](http://www.codeproject.com/KB/recipes/programminglanguagetoools.aspx)
* [Interpreter wzoru](http://en.wikipedia.org/wiki/Interpreter_pattern) (opisany w [wzorców projektowych](https://rads.stackoverflow.com/amzn/click/0201633612) $) określa sposób oceny zdań w języku
* [Wzory wdrożeniowe język: Tworzenie własnej domeny-szczególnego i ogólnego języków programowania](http://pragprog.com/titles/tpdsl/language-implementation-patterns)
* [Budujmy kompilator](http://compilers.iecc.com/crenshaw/) Jack Crenshaw - The [PDF](http://www.stack.nl/~marcov/compiler.pdf) wersję ¶ (przykładami są w Pascalu, ale informacje te są powszechnie stosowane)
* [Łączniki i ładowarki](http://books.google.com/books?id=Id9cYsIdjIwC&lpg=PP1&ots=IxFkFWJ-8V&dq=%22linkers%20and%20loaders%22&pg=PA215#v=onepage&q=%22linkers%20and%20loaders%22&f=false) $ (Google Książki)
* [Lisp w małe kawałki (LISP)](https://rads.stackoverflow.com/amzn/click/0521562473) $
* [LLVM Tutorial](http://llvm.org/docs/tutorial/)
* [Nowoczesne Compiler Wdrożenie w ml](https://rads.stackoverflow.com/amzn/click/0521607647) $ - Jest [Java](https://rads.stackoverflow.com/amzn/click/052182060X) $ i [C](https://rads.stackoverflow.com/amzn/click/0521607655) $ wersja, a także - powszechnie uważany za bardzo dobra książka
* [Obiektowe Compiler Construction](https://rads.stackoverflow.com/amzn/click/013630740X) $
* [Parsowania Techniki - praktyczny przewodnik](http://www.dickgrune.com/Books/PTAPG_1st_Edition/)
* [Projekt Oberon](http://www-old.oberon.ethz.ch/WirthPubl/ProjectOberon.pdf) ¶ - Spójrz w rozdziale 13
* [Programowanie komputera osobistego](https://rads.stackoverflow.com/amzn/click/0137302673) $
* [Programowanie w językach: stosowanie i interpretacja](http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/)
* [Królika kompilator schemacie](http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AITR-474.pdf) ¶
* [Odbicia ufność zaufania](http://web.archive.org/web/20141221110345/http://cm.bell-labs.com/who/ken/trust.html) - szybki przewodnik
* [Toczyć własną kompilator ramach .NET](http://msdn.microsoft.com/en-us/magazine/cc136756.aspx) - szybki samouczek z MSDN
* [Struktura i interpretacja programów komputerowych](http://mitpress.mit.edu/sicp/)
* [Rodzaje i Języki programowania](http://www.cis.upenn.edu/~bcpierce/tapl/)
* [Chcesz napisać kompilatora?](http://prog21.dadgum.com/30.html) - szybkie przypomnienie
* [Napisanie kompilatora w Ruby oddolne](http://www.hokstad.com/writing-a-compiler-in-ruby-bottom-up-step-1.html)


Legenda: 


* ¶ Link do pliku PDF
* $ Link do książki drukowanej
nauczyć się scriptowania. poznać matematykę - szczególnie takie rzeczy jak geometria, 2d / 3d zależy jakie gry chcesz pisac.  
  
poczytaj książkę od 0 do gier kodera [[link]](http://zapytaj.onet.pl/html_server.php?id=fdfc8a7d53ff5f48ec25718dbfd56349)  
ona cię wiele nauczy i pozwoli wejść w pisanie własnych gier Czym JavaScript różni się od języka Java?
  

  
przeczytaj tutaj, jest fajnie wypunktowane
  

  
<https://www.java.com/pl/download/faq/java_javascript.xml> zainteresuj się pythonem szczególnie biblioteką pyautogui  
[[link]](https://zapytaj.onet.pl/html_server.php?id=a7763b45a330aa974d9e4278133a0958) Marcin, opierając się na języku polskim możesz się uczyć tylko angielskiego. Wszystkich innych języków możesz się uczyć wybierając angielski jako "wyjściowy". Może Microsoft Office Publisher? <http://creativecommons.pl/>
  

  
tutaj możesz konkretniej poczytać jest ich bardzo dużo, najpopularniejsze: debian, gentoo suse, ubuntu, red hat na początek polecam ci świetną stronę, do tworzenia.  
  
www.weebly.com  
  
bardzo polecam ;] Ja korzystam z Google Drive i raczej nie mogę nic złego powiedzieć.
  
Ale to zależy na czym dokładnie polega Twoja praca. Jesli na wspólnym tworzeniu treści to Google Drive jest chyba rzeczywiście najlepsze. 
  

  
Jeśli chcesz przesyłać pliki to warto skorzystać z [Dropboxa](https://pl.ccm.net/download/pobierz-162-dropbox). A do prowadzenia projektu, wymiany informacji i załączników - polecam Trello.