Club utilise des cookies et des technologies similaires pour faire fonctionner correctement le site web et vous fournir une meilleure expérience de navigation.
Ci-dessous vous pouvez choisir quels cookies vous souhaitez modifier :
Club utilise des cookies et des technologies similaires pour faire fonctionner correctement le site web et vous fournir une meilleure expérience de navigation.
Nous utilisons des cookies dans le but suivant :
Assurer le bon fonctionnement du site web, améliorer la sécurité et prévenir la fraude
Avoir un aperçu de l'utilisation du site web, afin d'améliorer son contenu et ses fonctionnalités
Pouvoir vous montrer les publicités les plus pertinentes sur des plateformes externes
Gestion des cookies
Club utilise des cookies et des technologies similaires pour faire fonctionner correctement le site web et vous fournir une meilleure expérience de navigation.
Ci-dessous vous pouvez choisir quels cookies vous souhaitez modifier :
Cookies techniques et fonctionnels
Ces cookies sont indispensables au bon fonctionnement du site internet et vous permettent par exemple de vous connecter. Vous ne pouvez pas désactiver ces cookies.
Cookies analytiques
Ces cookies collectent des informations anonymes sur l'utilisation de notre site web. De cette façon, nous pouvons mieux adapter le site web aux besoins des utilisateurs.
Cookies marketing
Ces cookies partagent votre comportement sur notre site web avec des parties externes, afin que vous puissiez voir des publicités plus pertinentes de Club sur des plateformes externes.
Une erreur est survenue, veuillez réessayer plus tard.
Il y a trop d’articles dans votre panier
Vous pouvez encoder maximum 250 articles dans votre panier en une fois. Supprimez certains articles de votre panier ou divisez votre commande en plusieurs commandes.
Implementing a programming language means bridging the gap from the programmer's high-level thinking to the machine's zeros and ones. If this is done in an efficient and reliable way, programmers can concentrate on the actual problems they have to solve, rather than on the details of machines. But understanding the whole chain from languages to machines is still an essential part of the training of any serious programmer. It will result in a more competent programmer, who will moreover be able to develop new languages. A new language is often the best way to solve a problem, and less difficult than it may sound. This book follows a theory-based practical approach, where theoretical models serve as blueprint for actual coding. The reader is guided to build compilers and interpreters in a well-understood and scalable way. The solutions are moreover portable to different implementation languages. Much of the actual code is automatically generated from a grammar of the language, by using the BNF Converter tool. The rest can be written in Haskell or Java, for which the book gives detailed guidance, but with some adaptation also in C, C++, C#, or OCaml, which are supported by the BNF Converter. The main focus of the book is on standard imperative and functional languages: a subset of C++ and a subset of Haskell are the source languages, and Java Virtual Machine is the main target. Simple Intel x86 native code compilation is shown to complete the chain from language to machine. The last chapter leaves the standard paths and explores the space of language design ranging from minimal Turing-complete languages to human-computer interaction in natural language.