A Black da Amazon já começou

Essas promoções serão aplicadas a este item:

Algumas promoções podem ser combinadas; outras não são elegíveis. Para detalhes, por favor, acesse os Termos e Condições dessas promoções.

Você assinou o . Encomendaremos seus produtos na pré-venda até 24 horas após eles serem disponibilizados. Quando livros forem lançados, efetuaremos a cobrança da sua forma de pagamento padrão pelo menor preço disponível durante o período de pré-venda.
Atualize seu dispositivo ou forma de pagamento, cancele a compra de itens individuais em pré-venda ou sua assinatura em
Suas inscrições e assinaturas
Imagem do logotipo do app Kindle

Baixe o app Kindle gratuito e comece a ler livros do Kindle instantaneamente em seu smartphone, tablet ou computador - sem a necessidade de um dispositivo Kindle.

Leia instantaneamente em seu navegador com o Kindle para internet.

Usando a câmera do seu celular, digitalize o código abaixo e baixe o app Kindle.

Código QR para baixar o aplicativo Kindle

Seguir o autor

Algo deu errado. Tente fazer sua solicitação novamente mais tarde.

Crafting Interpreters (English Edition) eBook Kindle

4,8 4,8 de 5 estrelas 600 avaliações de clientes

Despite using them every day, most software engineers know little about how programming languages are designed and implemented. For many, their only experience with that corner of computer science was a terrifying "compilers" class that they suffered through in undergrad and tried to blot from their memory as soon as they had scribbled their last NFA to DFA conversion on the final exam.

That fearsome reputation belies a field that is rich with useful techniques and not so difficult as some of its practitioners might have you believe. A better understanding of how programming languages are built will make you a stronger software engineer and teach you concepts and data structures you'll use the rest of your coding days. You might even have fun.

This book teaches you everything you need to know to implement a full-featured, efficient scripting language. You’ll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused.

Starting from main(), you will build a language that features rich syntax, dynamic typing, garbage collection, lexical scope, first-class functions, closures, classes, and inheritance. All packed into a few thousand lines of clean, fast code that you thoroughly understand because you wrote each one yourself.
Devido ao tamanho do arquivo, o download deste livro poderá ser mais demorado

Veja mais produtos da Loja de Livros em Inglês e Outras Línguas
Encontre milhares de produtos internacionais como este em Livros. Confira.

Detalhes do produto

  • ASIN ‏ : ‎ B09BCCVLCL
  • Editora ‏ : ‎ Genever Benning (27 julho 2021)
  • Idioma ‏ : ‎ Inglês
  • Tamanho do arquivo ‏ : ‎ 18134 KB
  • Quantidade de dispositivos em que é possível ler este eBook ao mesmo tempo ‏ : ‎ Ilimitado
  • Leitura de texto ‏ : ‎ Habilitado
  • Configuração de fonte ‏ : ‎ Habilitado
  • X-Ray ‏ : ‎ Não habilitado
  • Dicas de vocabulário ‏ : ‎ Não habilitado
  • Número de páginas ‏ : ‎ 1192 páginas
  • Avaliações dos clientes:
    4,8 4,8 de 5 estrelas 600 avaliações de clientes

Sobre o autor

Siga autores para obter atualizações de novos lançamentos e recomendações aprimoradas.
Robert Nystrom
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Descubra mais livros do autor, veja autores semelhantes, leia recomendações de livros e muito mais.

Avaliações de clientes

4,8 de 5 estrelas
600 avaliações globais

Principais avaliações do Brasil

Avaliado no Brasil em 13 de fevereiro de 2023
Recebi esse livro super rápido com nota fiscal e tudo certo! Ainda não tive tempo para ler o livro, mas é um produto excelente sobre compiladores.
Avaliado no Brasil em 2 de fevereiro de 2024

Principais avaliações de outros países

Traduzir todas as avaliações para português
Richard Frantz Jr.
5,0 de 5 estrelas Useful information for writing a small interpreter
Avaliado nos Estados Unidos em 29 de agosto de 2024
A lot of this reminds me of when I studied from the Dragon Book in school, and what I remember is very helpful, but this book is more on a practical tack of actually use it. (Best thing for me was a suggestion that I take as never mind getting the elegant and difficult way of doing what I want and just get started and I can add the hard to use tools later.) Uses examples that seem of trivial use but clear examples and well describes the techniques needed.
Frederic Guerin
5,0 de 5 estrelas Outstanding and enjoyable!
Avaliado no Canadá em 28 de julho de 2022
This is a fascinating book in many different ways.

I am myself a teacher and throughout the book I could feel the author
attention and dedication in making this book something you could learn from.
He touches many different aspects of the matter with many great explanations
and without hiding the forest behind the trees, adding a touch of humour and his own illustrations.
He deserves my own job 10 times.

All the code you need to write is in the book. I tried hard to find a mistake, even a typo, but to no avail.
At times you wonder why he is writing the code that way, but then later, you find about it,
so you need to be careful to follow him as much as possible. The problem is that each
chapter ends with some interesting challenges, and if you tackle them in the order they come,
then your code becomes somewhat different from what's in the book and you then need
to figure out how to put that into place in your own code. That is exactly the problem I was confronted with in the Java part of the book, and by chance refrained from doing in the C part.

Another problem is testing your code. Sooner or later you will need to get some certitude about the
things you wrote, even if you follow the author as much as possible, and that means testing it.
I put in place my own tests for the Java part, throwing in many hours of effort.
I then realised the author had build it's own testing framework on his github repo for the book,
and used his framework for testing the C part of the book. The tests are written in Dart, and there is not much documentation into place to instruct you how to run them on a chapter by chapter basis. I had to read the code to figure out how to do it, and adapt the code a little bit to make it run properly under Windows, but I finally succeed. Dart is easy to grasp, but you still need to understand how to install the Dart ecosystem and properly configure it with the package manager.

As for the code itself, the Java part is as you would expect it to be. Functionalities are well segregated in to many classes doing their own things, with proper encapsulation. As for the C part, well, I guess I am not very accostumed to how compiler coders are writing C code. To me, this code seems like a mess. Macros are used extensively. There are many cross-dependecies between files. Of course the author is very knowledgeable and know its art. When doing the NaN boxing at the end of the book (last chapter on optimization) you understand why so much macros to begin with. As for cross-dependencies, I tried to figure out how I could avoid it, but to no avail. I suppose I just need to accept it that way.

No book is perfect, but still, this book is mostly perfect, even in its imperfections. 5 stars.
Huibert Aalbers
5,0 de 5 estrelas De lo mejor que he leído con respecto a intérpretes/compiladores
Avaliado no México em 22 de outubro de 2021
Si alguna vez quisiste saber cómo escribir un intérprete de un lenguaje de programación de (relativamente) alto nivel, este es un gran libro. El autor empieza definiendo el lenguaje que quiere implementar (Lox) y luego desarrollo dos intérpretes para este lenguaje, uno en Java (para entender las bases) y luego otro mucho más rápido en C, pero también más complejo, en C.

Se trata de un libro ameno, escrito por un experto que conoce el tema a fondo y que te permitirá aprender todos los conceptos fundamentales. ¡Altamente recomendado!
Partime
5,0 de 5 estrelas Great content. Not so perfect binding.
Avaliado na Índia em 10 de novembro de 2024
This is a very good introductory book to writing compiler, although any advanced work will require comprehensive knowledge on formal languages, type theory, etc. Wish the book was available in hardcover as the glued binding does not look like it would last long them use.
PMU
5,0 de 5 estrelas Die Kraft des Tuns - Super!
Avaliado na Alemanha em 12 de julho de 2024
Robert Nystrom sagt gleich zu Anfang: „It’s the book I wish I’d had when I first started getting into languages…”. Diese Aussage kann ich nur unterstreichen. Ich habe in den letzten Jahrzehnten sehr viele Bücher zum Thema Scannen, Parsen, Kompilieren, Interpretieren und über den Aufbau und die Struktur von Sprachen durchgeackert und versucht, sie für meine Arbeit zu nutzen.

Dies ist vor allem wegen des immensen Theorieanteils der Werke nicht immer gelungen. Der akademische Aspekt, die Mathematik und Logik, deren Notationen und die dadurch erzielte Effizienz mögen wichtig sein; doch sie schläfern auch ein, lenken vom eigentlichen Ziel ab und können darüber hinaus auch mehr verwirren als helfen.

Der in diesem Buch verfolgte Ansatz ist viel pragmatischer und einfacher zu verstehen: Die speziell für den Lehrzweck geschaffene Sprache Lox wird gleich zweimal, Hand in Hand mit dem Leser, als Interpreter implementiert.

Einmal so simpel wie möglich, mit einem auf Java basierenden rekursiven Tree-Walking-Interpreter und einmal auf Performance und Kompaktheit optimiert, in maschinennahem C. Theorie gibt es immer nur so viel, wie es für den nächsten Abschnitt absolut notwendig ist.

Ich habe beide Teile durchgearbeitet und bin der Meinung, dass es mit Abstand das beste Buch zum Thema ist.

Es ist didaktisch rund und mit vielen Aufgaben und Herausforderungen gespickt, die im zugehörigen Github auch aufgelöst werden.

Es ist sprachlich ausgereift und trotz des „trockenen“ Themas sehr amüsant geschrieben.

Beide Teile implementieren das Gleiche mit unterschiedlichen Schwerpunkten; das hilft, zunächst die Konzepte und dann die Wege und Optimierungen zu verstehen.

Der Praxisbezug vermittelt Architektur und Design-Patterns auf beinahe spielerische Weise.

Aber das Beste: Das Buch hat keine Fehler. Obwohl der Code Schritt für Schritt ergänzt und verändert wird, ist er zu jedem vorgesehenen Zeitpunkt einsatzfähig und leistet, was er soll. Keine Sackgassen, Verwirrung und Frust!

Der erste Interpreter ist übrigens auch ohne Schwierigkeit auf Python implementierbar.

Denunciar um problema


Este item inclui conteúdo inapropriado?
Você acredita que este item viola direitos autorais?
Este item contém problemas de qualidade ou formatação?