Ocena:

Książka stanowi kompleksowe wprowadzenie do LLVM dla programistów kompilatorów, szczególnie tych z pewnym doświadczeniem w C++. Obejmuje ona szeroki zakres tematów związanych z tworzeniem kompilatorów, ale nie zagłębia się w żaden obszar. Książka jest dobrze zorganizowana i zawiera praktyczne projekty oraz dodatkowe materiały wideo. Może jednak stanowić wyzwanie dla zupełnie początkujących programistów i zawiera pewne trywialne treści, które mogą nie być przydatne dla wszystkich czytelników.
Zalety:⬤ Dobrze zorganizowana struktura i logiczny przepływ.
⬤ Obejmuje szeroki zakres tematów LLVM (od front-endu do back-endu).
⬤ Odpowiednia dla czytelników ze znajomością C++ i pewnym doświadczeniem w tworzeniu kompilatorów.
⬤ Zawiera praktyczne projekty i filmy „Kod w akcji” do praktycznej nauki.
⬤ Omawia nowe funkcje LLVM, dzięki czemu jest istotna i aktualna.
⬤ Nie nadaje się dla zupełnie początkujących bez żadnego doświadczenia w programowaniu.
⬤ Niektóre trywialne treści mogą być stratą czasu dla doświadczonych czytelników.
⬤ Brak dogłębnego omówienia konkretnych tematów LLVM, które mogą być potrzebne zaawansowanym użytkownikom lub tym, którzy chcą przyczynić się do rozwoju LLVM.
(na podstawie 6 opinii czytelników)
Learn LLVM 12: A beginner's guide to learning LLVM compiler tools and core libraries with C++
Dowiedz się, jak budować i używać wszystkich części rzeczywistych kompilatorów, w tym frontendu, potoku optymalizacji i nowego backendu, wykorzystując moc podstawowych bibliotek LLVM.
Kluczowe cechy:
⬤ Poznaj efektywne wykorzystanie bibliotek LLVM krok po kroku.
⬤ Zrozumienie wysokopoziomowego projektu kompilatora LLVM i zastosowanie tych samych zasad do własnego kompilatora.
⬤ Wykorzystanie narzędzi opartych na kompilatorze do poprawy jakości kodu w projektach C++.
Opis książki:
LLVM został zbudowany, aby wypełnić lukę między podręcznikami kompilatorów a rzeczywistym rozwojem kompilatorów. Zapewnia modułową bazę kodu i zaawansowane narzędzia, które pomagają programistom w łatwym tworzeniu kompilatorów. Niniejsza książka stanowi praktyczne wprowadzenie do LLVM, stopniowo pomagając w łatwym poruszaniu się po złożonych scenariuszach, jeśli chodzi o tworzenie i pracę z kompilatorami.
Zaczniesz od skonfigurowania, zbudowania i zainstalowania bibliotek LLVM, narzędzi i projektów zewnętrznych. Następnie książka wprowadzi cię w projekt LLVM i jego praktyczne działanie na każdym etapie kompilacji LLVM: frontend, optymalizator i backend. Korzystając z podzbioru rzeczywistego języka programowania jako przykładu, dowiesz się, jak opracować frontend i wygenerować LLVM IR, przekazać go do potoku optymalizacji i wygenerować z niego kod maszynowy. Późniejsze rozdziały pokażą ci, jak rozszerzyć LLVM o nowy przebieg i jak działa wybór instrukcji w LLVM. Skupimy się również na kwestiach kompilacji Just-in-Time i obecnym stanie wsparcia kompilacji JIT zapewnianego przez LLVM, zanim w końcu zrozumiemy, jak opracować nowy backend dla LLVM.
Pod koniec tej książki LLVM zdobędziesz rzeczywiste doświadczenie w pracy z frameworkiem kompilatora LLVM za pomocą praktycznych przykładów i fragmentów kodu źródłowego.
Czego się nauczysz:
⬤ Konfigurować, kompilować i instalować framework LLVM.
⬤ Zrozumieć, jak zorganizowane jest źródło LLVM.
⬤ Odkryć, co należy zrobić, aby używać LLVM we własnych projektach.
⬤ Poznanie struktury kompilatora i zaimplementowanie niewielkiego kompilatora.
⬤ Generowanie LLVM IR dla popularnych konstrukcji języka źródłowego.
⬤ Skonfigurować potok optymalizacji i dostosować go do własnych potrzeb.
⬤ Rozszerzenie LLVM o transformacje i narzędzia clang.
⬤ Dodaj nowe instrukcje maszynowe i kompletny backend.
Dla kogo jest ta książka:
Ta książka jest przeznaczona dla programistów kompilatorów, entuzjastów i inżynierów, którzy są nowicjuszami w LLVM i są zainteresowani poznaniem frameworka LLVM. Jest również przydatna dla inżynierów oprogramowania C++, którzy chcą korzystać z narzędzi opartych na kompilatorach do analizy i ulepszania kodu, a także zwykłych użytkowników bibliotek LLVM, którzy chcą zdobyć więcej wiedzy na temat podstaw LLVM. Średniozaawansowane doświadczenie w programowaniu w języku C++ jest obowiązkowe, aby lepiej zrozumieć koncepcje omówione w tej książce.