Ocena:
Książka jest wysoko ceniona za przystępne i wciągające podejście do budowy kompilatorów. Została zaprojektowana tak, aby pomóc zarówno początkującym, jak i średnio zaawansowanym programistom zrozumieć i zbudować działający kompilator krok po kroku. Wykorzystanie prostego języka DSL (Domain Specific Language) i jasnych wyjaśnień sprawia, że złożone koncepcje są łatwe do opanowania.
Zalety:⬤ Przystępne i zabawne podejście do zrozumienia budowy kompilatora.
⬤ Wykorzystuje metodę rekursywnego schodzenia, która jest prosta dla małych języków.
⬤ Jasne i zwięzłe wyjaśnienia trudnych pojęć.
⬤ Wciągające ćwiczenia utrwalające wiedzę.
⬤ Przeznaczony zarówno dla początkujących, jak i średnio zaawansowanych programistów.
⬤ Rozwija umiejętności rozwiązywania problemów i programowania.
⬤ Może być zbyt podstawowa dla zaawansowanych użytkowników szukających głębokiej wiedzy teoretycznej.
⬤ Ograniczony zakres do konkretnego małego języka programowania (CPRL), który może nie obejmować wszystkich aspektów projektowania kompilatorów w szerszym kontekście.
(na podstawie 3 opinii czytelników)
Introduction to Compiler Design: An Object-Oriented Approach Using Java(R)
Książka ta została zaprojektowana przede wszystkim do wykorzystania jako podręcznik na jednosemestralnym kursie projektowania kompilatorów dla studentów studiów licencjackich i początkujących absolwentów. Jedyne wymagania wstępne dla tej książki to znajomość podstawowych algorytmów i struktur danych (listy, mapy, rekurencja itp. ), Podstawowa znajomość architektury komputera i języka asemblera oraz pewne doświadczenie z językiem programowania Java.
Pełne studium kompilatorów mogłoby z łatwością wypełnić kilka kursów na poziomie magisterskim, dlatego konieczne są pewne uproszczenia i kompromisy, aby kurs trwał jeden semestr i był dostępny dla studentów studiów licencjackich. Oto niektóre z decyzji podjętych w celu dostosowania się do celów tej książki.
⬤ Książka koncentruje się w wąskim zakresie na kursie zorientowanym na projekty dotyczące kompilatorów. Teoria kompilatorów jest ograniczona do minimum, ale orientacja projektowa zachowuje "zabawną" część studiowania kompilatorów.
⬤ Kompilowany język źródłowy jest stosunkowo prosty, ale jest wystarczająco potężny, aby być interesującym i wymagającym. Zawiera on podstawowe typy danych, tablice, procedury, funkcje i parametry, ale wiele innych interesujących funkcji języka zostało przeniesionych do ćwiczeń projektowych.
⬤ Językiem docelowym jest język asemblera dla maszyny wirtualnej o architekturze opartej na stosie, podobnej, ale znacznie prostszej niż Java Virtual Machine (JVM). Takie podejście znacznie upraszcza generowanie kodu. Zarówno asembler, jak i emulator maszyny wirtualnej są dostępne na stronie internetowej kursu.
⬤ W książce nie są wymagane ani wykorzystywane żadne specjalne narzędzia związane z kompilatorami. Studenci potrzebują jedynie dostępu do kompilatora Java i edytora tekstu, ale większość z nich będzie chciała używać Javy ze zintegrowanym środowiskiem programistycznym (IDE).
⬤ Jednym z bardzo ważnych elementów kompilatora jest parser, który weryfikuje zgodność programu źródłowego ze składnią języka i tworzy pośrednią reprezentację programu, która jest odpowiednia do dodatkowej analizy i generowania kodu. Istnieje kilka różnych podejść do parsowania, ale zgodnie z założeniami jednosemestralnego kursu, niniejsza książka kładzie nacisk tylko na jedno podejście, rekurencyjne parsowanie z jednym symbolem lookahead.
© Book1 Group - wszelkie prawa zastrzeżone.
Zawartość tej strony nie może być kopiowana ani wykorzystywana w całości lub w części bez pisemnej zgody właściciela.
Ostatnia aktualizacja: 2024.11.13 21:45 (GMT)