C
Learn LLVM 12. A beginner's guide to learning LLVM compiler tools and core libraries with C++
Kai Nacke
LLVM was built to bridge the gap between compiler textbooks and actual compiler development. It provides a modular codebase and advanced tools which help developers to build compilers easily. This book provides a practical introduction to LLVM, gradually helping you navigate through complex scenarios with ease when it comes to building and working with compilers.You’ll start by configuring, building, and installing LLVM libraries, tools, and external projects. Next, the book will introduce you to LLVM design and how it works in practice during each LLVM compiler stage: frontend, optimizer, and backend. Using a subset of a real programming language as an example, you will then learn how to develop a frontend and generate LLVM IR, hand it over to the optimization pipeline, and generate machine code from it. Later chapters will show you how to extend LLVM with a new pass and how instruction selection in LLVM works. You’ll also focus on Just-in-Time compilation issues and the current state of JIT-compilation support that LLVM provides, before finally going on to understand how to develop a new backend for LLVM.By the end of this LLVM book, you will have gained real-world experience in working with the LLVM compiler development framework with the help of hands-on examples and source code snippets.
Linux. Programowanie systemowe
Robert Love
Wykorzystaj moc Linuksa i twórz funkcjonalne oprogramowanie systemowe! Jak zarządzać plikowymi operacjami wejścia i wyjścia? Jak zablokować fragmenty przestrzeni adresowej? Jak sterować działaniem interfejsu odpytywania zdarzeń? Dzisiaj systemu Linux nie musimy już nikomu przedstawiać, dzięki swojej funkcjonalności i uniwersalności stał się niezwykle popularny i szeroko wykorzystywany. Działa wszędzie ― poczynając od najmniejszych telefonów komórkowych, a na potężnych superkomputerach kończąc. Z Linuksa korzystają agencje wywiadowcze i wojsko, jego niezawodność doceniły również banki i instytucje finansowe. Oprogramowanie z przestrzeni użytkownika w systemie Linux może być uruchamiane na wszystkich platformach, na których poprawnie działa kod jądra. Czytając książkę "Linux. Programowanie systemowe", dowiesz się, jak utworzyć oprogramowanie, które jest niskopoziomowym kodem, komunikującym się bezpośrednio z jądrem oraz głównymi bibliotekami systemowymi. Opisany został tu sposób działania standardowych i zaawansowanych interfejsów zdefiniowanych w Linuksie. Po lekturze napiszesz inteligentniejszy i szybszy kod, który działa we wszystkich dystrybucjach Linuksa oraz na wszystkich rodzajach sprzętu. Nauczysz się budować poprawne oprogramowanie i maksymalnie je wykorzystywać. Programowanie systemowe Biblioteka języka C Kompilator języka C Interfejs odpytywania zdarzeń Zarządzanie procesami i pamięcią Użytkownicy i grupy Ograniczenia zasobów systemowych Zarządzanie plikami i katalogami Identyfikatory sygnałów Struktury danych reprezentujące czas Konwersje czasu Poznaj i ujarzmij potęgę Linuksa!
Min-Yih Hsu
Every programmer or engineer, at some point in their career, works with compilers to optimize their applications. Compilers convert a high-level programming language into low-level machine-executable code. LLVM provides the infrastructure, reusable libraries, and tools needed for developers to build their own compilers. With LLVM’s extensive set of tooling, you can effectively generate code for different backends as well as optimize them.In this book, you’ll explore the LLVM compiler infrastructure and understand how to use it to solve different problems. You’ll start by looking at the structure and design philosophy of important components of LLVM and gradually move on to using Clang libraries to build tools that help you analyze high-level source code. As you advance, the book will show you how to process LLVM IR – a powerful way to transform and optimize the source program for various purposes. Equipped with this knowledge, you’ll be able to leverage LLVM and Clang to create a wide range of useful programming language tools, including compilers, interpreters, IDEs, and source code analyzers.By the end of this LLVM book, you’ll have developed the skills to create powerful tools using the LLVM framework to overcome different real-world challenges.
Microsoft Visual Studio 2012. Programowanie w C i C++
Radosław Sokół
Dołącz do najlepszych, zacznij programować w C i C++! Poznaj środowisko Microsoft Visual Studio 2012! Odkryj uniwersalne narzędzia programistyczne! Naucz się programować w językach C i C++! Informatyka w obecnym kształcie nie mogłaby istnieć bez języków C i C++. Oba miały ogromne znaczenie dla powstania współczesnych systemów operacyjnych i oprogramowania użytkowego. Od systemu UNIX, poprzez Linuksa, aż po różne wersje systemu Windows — wszystkie środowiska w mniejszym lub większym stopniu zostały zbudowane za pomocą C lub C++. Prosta składnia tych języków, ich wysoka wydajność i ogromne możliwości zapewniły im wierną rzeszę profesjonalnych użytkowników, wielką popularność w instytucjach naukowych oraz liczne „potomstwo” w postaci języków programowania wykorzystujących mechanizmy i konstrukcje wprowadzone po raz pierwszy właśnie w C i C++. Jeśli chcesz poznać podstawy programowania przy użyciu najpopularniejszego narzędzia do tworzenia aplikacji dla Windows, nie mogłeś lepiej trafić! Książka Microsoft Visual Studio 2012. Programowanie w C i C++ wprowadzi Cię w świat programowania proceduralnego w C i zorientowanego obiektowo w C++. Dowiesz się, jak zainstalować i wykorzystywać środowisko Visual Studio 2012, poznasz techniki stosowane przez programistów oraz nauczysz się samodzielnie budować programy. Uważna lektura pozwoli Ci opanować języki C i C++ w takim stopniu, aby dalsza nauka nie stanowiła najmniejszego problemu. Przeczytaj i poznaj: metody instalacji i konfiguracji środowiska Visual Studio 2012 sposoby kompilacji, budowania, poprawiania i uruchamiania programów strukturę kodu programów i konstrukcje programistyczne w językach C i C++ instrukcje warunkowe, operatory i funkcje operacje wejścia-wyjścia, strumienie oraz działania na zbiorach danych podstawy programowania zorientowanego obiektowo dziedziczenie i polimorfizm, szablony i iteratory oraz obsługę sytuacji wyjątkowych Programowanie to nic trudnego, przekonaj się o tym jeszcze dziś!
Mistrz języka C. Najlepsze zasady, praktyki i wzorce
Christopher Preschern
Język C mimo upływu lat wciąż wydaje się niezastąpiony. Umożliwia pisanie zwięzłego kodu, który działa szybko mimo niewielkich zasobów sprzętowych. Choć wielu programistów używa C, trudno jest znaleźć eksperckie wskazówki dotyczące programowania w tym języku. Tymczasem w profesjonalnych zastosowaniach podjęcie optymalnych decyzji projektowych warunkuje uzyskanie wysokiej jakości gotowego kodu. To świetna pozycja, dzięki której Twój kod będzie bardziej przejrzysty i łatwiejszy w konserwacji. David Griffiths, autor książki Head First C W tym poradniku, skierowanym do początkujących i doświadczonych programistów języka C, zawarto wiele informacji o podejmowaniu decyzji projektowych, pokazano też krok po kroku, jak wpływają one na tworzenie złożonego oprogramowania. Znajdziesz tu odpowiedzi na trudne pytania o projektowanie struktury programów w C, obsługę błędów czy tworzenie elastycznych interfejsów. Liczne wskazówki i przykłady ułatwią Ci przekładanie wiedzy projektowej na działające implementacje. Druga część książki stanowi omówienie zastosowania licznych wzorców projektowych z języka C do tworzenia większych aplikacji. Dowiesz się, jakie wzorce stosuje się w konkretnych sytuacjach, a także w jaki sposób mogą ułatwić Ci pracę dzięki wskazywaniu dobrych decyzji projektowych. W książce omówiono wzorce dotyczące: obsługi błędów i komunikatów o błędach zarządzania pamięcią elastycznych API i interfejsów iteratorów organizowania plików w programach modułowych ucieczki z piekła instrukcji #ifdef Ta książka pokaże początkującym, jak tworzyć w C produkty klasy przemysłowej! Robert Hanmer, architekt oprogramowania
Nowoczesny C. Przegląd C23 z przykładami
Jarosław Stańczyk
Elementarz języka C Mimo że C - stworzony przez pracownika Laboratoriów Bella Dennisa Ritchiego - liczy sobie pół wieku, wciąż pozostaje niezwykle popularnym proceduralnym językiem ogólnego zastosowania. To dzięki niemu powstają elementy systemów operacyjnych i programów użytkowych. Tymczasem za sprawą Międzynarodowej Organizacji Normalizacyjnej (ISO) światło dzienne ujrzy najnowsza wersja standardu języka, która ukaże się pod koniec 2023 roku. Właśnie tej iteracji poświęcony jest podręcznik Jarosława Stańczyka - Nowoczesny C. Przegląd C23 z przykładami. Treść została podzielona na trzy części. W pierwszej autor opisuje budowę programu i kod źródłowy języka C, a także przedstawia narzędzia do kompilacji i uruchamiania przykładów dołączonych do książki. Jej trzon stanowią pozostałe dwie części, które zawierają między innymi omówienie języka C i standardowej biblioteki. Prezentowanym zagadnieniom towarzyszą liczne przykłady - przy każdym podano nazwę pliku źródłowego. Wszystkie kody źródłowe zaś można samodzielnie pobrać z serwisu GitHub. W książce między innymi: nowości i zmiany wprowadzone w C23 elementy leksykalne podstawowe typy danych stałe, wyrażenia i operatory instrukcje, funkcje dyrektywy preprocesora biblioteka standardowa Z językiem C za pan brat!
Christopher Fairbairn, Collin Ruffenach, Johannes Fahrenkrug
Wejdź pewnym krokiem w świat programowania Apple! Jeszcze parę lat temu nie do pomyślenia było, że aplikacje na urządzenia mobilne mogą stanowić tak intratny interes. Jednak urządzenia te podbiły rynek w mgnieniu oka i dziś trudno wyobrazić sobie życie bez nich. Co więcej, dały one jeszcze większe możliwości działania różnym projektantom - praktycznie wszystkie wyposażone są w aparat fotograficzny, odbiornik GPS oraz czujniki położenia. To peryferia, o których programiści tworzący aplikacje na standardowe komputery mogą tylko pomarzyć. Zastanawiasz się, jak wykorzystać ten potencjał? Ta książka dostarczy Ci odpowiedzi. W trakcie lektury nauczysz się tworzyć atrakcyjne aplikacje na platformę iOS. Jest ona wykorzystywana w urządzeniach firmy Apple, których nikomu nie trzeba przedstawiać. Podczas tworzenia aplikacji dla tej platformy będziesz korzystał z języka Objective-C oraz środowiska XCode 4. Zawarta tu wiedza i liczne przykłady krok-po-kroku pozwolą Ci błyskawicznie opanować trudniejsze partie materiału. Książka ta jest idealną pozycją dla wszystkich programistów chcących rozpocząć przygodę z platformą iOS. Sprawdź: jak przygotować środowisko pracy XCode jaka jest składnia języka Objective-C jak uruchomić swoją pierwszą aplikację Twój przewodnik do pierwszej aplikacji na system iOS! Christopher Fairbairn, Johannes Fahrenkrug i Collin Ruffenach są profesjonalnymi twórcami oprogramowania działającego na platformach mobilnych. Każdy z nich ma więcej niż dziesięcioletnie doświadczenie w używaniu różnych systemów, takich jak iOS, Palm, Windows Mobile i Java.
Objective-C. Vademecum profesjonalisty. Wydanie III
Stephen G. Kochan
Praktyczny podręcznik tworzenia aplikacji na systemy iOS i Mac OS X! Techniki definiowania klas i sposoby wysyłania komunikatów do obiektów Praca z typami danych, pętlami, klasami i obiektami Korzystanie z bibliotek Foundation oraz Cocoa i Cocoa Touch Tak jak iPhone, iPad czy iPod Touch błyskawicznie stały się obiektem pożądania milionów ludzi na całym świecie, tak samo szybko rynek upomniał się o specjalistów od tworzenia aplikacji na te innowacyjne urządzenia. Mimo że od 2007 roku, gdy Apple opublikowało zaktualizowaną wersję języka Objective-C, oznaczoną jako 2.0, minęło już trochę czasu, programistów znających ten język wciąż jest niewielu, a zapotrzebowanie na programy dla systemów iOS i Mac OS X stale rośnie. Warto zatem opanować ten potężny język, zarazem prosty i oferujący ogromne perspektywy zawodowe. Zwłaszcza że można go wykorzystać także na wielu innych platformach z kompilatorem gcc, a więc między innymi w systemach Unix, Linux i Windows. Oto książka stworzona z myślą o programistach stawiających pierwsze kroki w języku Objective-C. Do wykorzystania zawartej tu wiedzy nie jest potrzebna znajomość języka C ani żadnego innego obiektowego języka programowania. Podstawą do nauki są dziesiątki ciekawych przykładów i ćwiczeń, ilustrujących użycie poszczególnych cech i ułatwiających zrozumienie poznawanych zagadnień. Książkę podzielono na trzy części. Pierwsza zawiera podstawowe wiadomości na temat języka Objective-C 2.0, a w drugiej znajdziesz opis klas dostępnych w bibliotece Foundation. Część trzecia poświęcona została niezwykle ważnym bibliotekom Cocoa i Cocoa Touch. Na końcu książki zamieszczono kurs pisania programów dla systemu iOS przy użyciu Software Development Kit iOS oraz biblioteki UIKit. Poznaj Objective-C i czerp z tego korzyści! Proces tworzenia pierwszego programu w języku Objective-C Klasy, obiekty i metody, czyli podstawy programowania obiektowego Typy danych i wyrażenia oraz sposoby ich używania w programach Rodzaje pętli, których można używać w programach: for, while i do Szczegółowy opis technik pracy z klasami i obiektami Wprowadzenie do pojęcia dziedziczenia Polimorfizm oraz typowanie i wiązanie dynamiczne Techniki inicjacji obiektów, bloki, protokoły, kategorie, preprocesor oraz niektóre elementy języka C Obiekty liczbowe i łańcuchowe, kolekcje, systemy plików Techniki zarządzania pamięcią oraz proces kopiowania i archiwizowania obiektów Wprowadzenie do Cocoa i Cocoa Touch Pisanie programów dla systemu iOS i wprowadzenie do SDK iOS oraz biblioteki UIKit Zacznij pisać własne, funkcjonalne programy na iPhone’a, iPada oraz iPoda Touch! Stephen G. Kochan jest autorem lub współautorem kilku uznanych książek na temat języka C, między innymi Programming in C, Programming in ANSI C i Topics in C Programming, a także kilku publikacji dotyczących Uniksa, np. Exploring the Unix System i Unix Shell Programming. Pisze programy dla komputerów Macintosh od samego początku ich istnienia, a więc od roku 1984, kiedy pojawił się pierwszy Mac. Napisał książkę Programming C for the Mac wydaną w serii Apple Press Library, a także książkę Beginning AppleScript.