15 Livros para você Aprender a Criar Sua Própria Linguagem de Programação

Marcos Oliveira - Jul 25 - - Dev Community

Esse ano eu inicie o desenvolvimento da minha própria linguagem de programação e até postei um vídeo mostrando ela sendo compilada e funcionando no Windows e no GNU/Linux:

▶️ VEJA AQUI O VÍDEO

E algumas pessoas me perguntaram como eu criei. A tarefa não foi fácil, aliás, não há nada de bom que seja fácil! 😃

Mas, eu aprendi lendo livros que comprei na internet. Muitos me perguntaram quais foram esses livros, 4 dos que eu li estão nessa lista e ainda incrementei com mais livros que eu gostaria de ter comprado e/ou obtido tempo para ler.

Então, nesse artigo veremos: 15 Livros para você Aprender a Criar Sua Própria Linguagem de Programação.


01. Compilers: Principles, Techniques, and Tools

01

Compiladores: Princípios, Técnicas e Ferramentas, conhecido por professores, estudantes e desenvolvedores em todo o mundo como o "Livro do Dragão", está disponível em uma nova edição.

Cada capítulo foi completamente revisado para refletir os desenvolvimentos em engenharia de software, linguagens de programação e arquitetura de computadores que ocorreram desde 1986, quando a última edição foi publicada.

Os autores, reconhecendo que poucos leitores construirão um compilador, mantêm seu foco no conjunto mais amplo de problemas enfrentados no projeto e no desenvolvimento de software.

Clique aqui para adquirir esse livro


Saber Design Patterns é importante para aplicar o padrão Visitante para seu compilador/interpretador.

Os autores começam descrevendo o que são padrões e como eles podem ajudá-lo a projetar software orientado a objetos. Eles então nomeiam, explicam, avaliam e catalogam sistematicamente projetos recorrentes em sistemas orientados a objetos.

Com Design Patterns como guia, você aprenderá como esses padrões importantes se encaixam no processo de desenvolvimento de software e como você pode aproveitá-los para resolver seus próprios problemas de design com mais eficiência.

Cada padrão descreve as circunstâncias em que é aplicável, quando pode ser aplicado tendo em vista outras restrições de projeto e as consequências e compensações do uso do padrão em um projeto mais amplo. Todos os padrões são compilados a partir de sistemas reais e baseados em exemplos do mundo real.

Cada padrão também inclui código que demonstra como ele pode ser implementado em linguagens de programação orientadas a objetos como C++ ou Smalltalk.

Clique aqui para adquirir esse livro


03. Compiladores: Princípios, Técnicas e Ferramentas

03

Essa é a versão em Português da primeira opção.

Desde a publicação da primeira edição deste livro, em 1986, o mundo das linguagens de programação mudou significativamente. Hoje, as arquiteturas de computador oferecem diversos recursos dos quais o projetista de compilador pode tirar proveito, bem como novos problemas de compilação.

Clique aqui para adquirir esse livro


04. C++ Software Design: Design Principles and Patterns for High-Quality Software

04

Esse livro também ensina Design Patterns, no entanto, de uma forma muito mais moderna!

Um bom design de software é essencial para o sucesso do seu projeto, mas projetar software é difícil de fazer. Você precisa ter um conhecimento profundo das consequências das decisões de projeto e uma boa visão geral das alternativas de projeto disponíveis.

Com este livro, desenvolvedores experientes em C++ obterão uma visão geral completa, prática e incomparável do design de software com esta linguagem moderna. O instrutor e consultor de C++ Klaus Iglberger explica como você pode gerenciar dependências e abstrações, melhorar a mutabilidade e a extensibilidade de entidades de software e aplicar e implementar padrões de design modernos para ajudá-lo a aproveitar as vantagens das possibilidades atuais.

O design de software é o aspecto mais essencial de um projeto de software porque impacta as propriedades mais importantes do software: manutenibilidade, mutabilidade e extensibilidade.

Clique aqui para adquirir esse livro


05. Build Your Own Programming Language

Um guia do programador para projetar compiladores, interpretadores e DSLs para resolver problemas de computação modernos.

05

Neste livro, você começará implementando o frontend de um compilador para sua linguagem, incluindo um analisador e analisador léxico.

O livro cobre uma série de travessias de árvores sintáticas, culminando com a geração de código para uma máquina virtual de bytecode. Seguindo em frente, você aprenderá como os recursos de linguagem específicos do domínio geralmente são melhor representados por operadores e funções integrados à linguagem, em vez de funções de biblioteca.

Explica como implementar a coleta de lixo, incluindo contagem de referências e coleta de lixo por marcação e varredura. Ao longo do livro, o Dr. Jeffery tece sua experiência de construção da linguagem de programação Unicon para dar melhor contexto aos conceitos, onde exemplos relevantes são fornecidos em Unicon e Java para que você possa seguir o código de sua escolha de um nível muito alto. linguagem de nível com recursos avançados ou uma linguagem convencional.

Clique aqui para adquirir esse livro


06. Crafting Interpreters

06

Apesar de usá-las todos os dias, a maioria dos engenheiros de software sabe pouco sobre como as linguagens de programação são projetadas e implementadas.

Para muitos, sua única experiência com esse ramo da ciência da computação foi uma terrível aula de "compiladores" que eles sofreram na graduação e tentaram apagar da memória assim que rabiscaram sua última conversão de NFA para DFA no exame final.

Essa reputação assustadora esconde um campo rico em técnicas úteis e não tão difícil como alguns de seus praticantes podem fazer você acreditar. Uma melhor compreensão de como as linguagens de programação são construídas tornará você um engenheiro de software mais forte e lhe ensinará conceitos e estruturas de dados que você usará no resto de seus dias de codificação.
Você pode até se divertir. Este livro ensina tudo o que você precisa saber para implementar uma linguagem de script eficiente e completa. Você aprenderá conceitos de alto nível sobre análise e semântica e detalhes detalhados como representação de bytecode e coleta de lixo.

Seu cérebro se iluminará com novas ideias e suas mãos ficarão sujas e calejadas. A partir de main(), você construirá uma linguagem que apresenta sintaxe rica, digitação dinâmica, coleta de lixo, escopo léxico, funções de primeira classe, fechamentos, classes e herança.

Tudo embalado em alguns milhares de linhas de código limpo e rápido que você entende perfeitamente porque escreveu cada uma delas sozinho.

Clique aqui para adquirir esse livro


07. Construa sua própria linguagem de programação - Segunda Edição

Essa é a Segunda Edição do item 05.

07

Aprenda a projetar sua própria linguagem de programação de maneira prática, construindo compiladores, usando pré-processadores, transpiladores e muito mais, nesta segunda edição totalmente atualizada, escrita pelo criador da linguagem de programação Unicon.

Clique aqui para adquirir esse livro


08. Crie sua própria linguagem de programação

Design, Build, and Master Your Own Code

08

Este livro é o seu roteiro pessoal para o intrincado mundo do desenvolvimento da linguagem. Não importa se você é um programador experiente em busca de um novo desafio ou um novato se aventurando no mundo do código pela primeira vez; nosso guia foi elaborado para acomodar todos os níveis de especialização.

Clique aqui para adquirir esse livro


09. Writing An Interpreter In Go

09

Neste livro você irá criar uma linguagem de programação com 0 linhas de código e terminará com um interpretador totalmente funcional para a linguagem de programação Monkey. Passo a passo. Dos tokens à saída.

Clique aqui para adquirir esse livro


10. Writing Compilers and Interpreters: A Software Engineering Approach

10

A tão esperada revisão de um guia exclusivo que cobre compiladores e interpretadores Revisada, atualizada e agora com foco em Java em vez de C++, esta tão esperada e mais recente edição deste livro popular ensina programadores e estudantes de engenharia de software como escrever compiladores e interpretadores usando Java.

Você escreverá compiladores e interpretadores como estudos de caso, gerando código assembly geral para uma Java Virtual Machine que aproveita o Java Collections Framework para encurtar e simplificar o código. Além disso, a cobertura inclui Java Collections Framework, modelagem UML, programação orientada a objetos com padrões de design, trabalho com código intermediário XML e muito mais.

Clique aqui para adquirir esse livro


11. Escrevendo compiladores e interpretadores: uma abordagem aplicada

11

Um guia prático para escrever intérpretes e compiladores. Mostra como escrever uma série de utilitários úteis, incluindo um interpretador de depuração interativo e um compilador funcional, de forma incremental e de cima para baixo.

A abordagem prática incentiva a experimentação desses programas em um computador pessoal. A apresentação é independente do sistema operacional e do sistema de escrita do compilador. Todos os programas são escritos na linguagem C. Inclui exercícios.

Clique aqui para adquirir esse livro


Esta abordagem extremamente prática e prática para construir compiladores usando a linguagem de programação C inclui vários exemplos de código funcional de um compilador real e abrange tópicos avançados como geração de código, otimização e análise do mundo real. É uma referência e tutorial ideal.

Clique aqui para adquirir esse livro


13. Introdução aos compiladores e design de linguagem: segunda edição

13

Este livro oferece uma introdução de um semestre à construção de compiladores, permitindo ao leitor construir um compilador simples que aceite uma linguagem semelhante a C e a traduza em linguagem assembly funcional X86 ou ARM. É mais adequado para estudantes de graduação que tenham alguma experiência em programação em C e tenham feito cursos em estruturas de dados e arquitetura de computadores.

Clique aqui para adquirir esse livro


14. Crafting A Compiler

14

Criar um compilador é um tratamento prático, porém completo, da construção de compiladores. É ideal para cursos de graduação em Compiladores ou para engenheiros de software, analistas de sistemas e arquitetos de software.

Crafting a Compiler é um texto de nível de graduação que apresenta uma abordagem prática para a construção de compiladores com cobertura completa do material e exemplos que ilustram claramente os conceitos do livro.

Ao contrário de outros textos no mercado, Fischer/Cytron/LeBlanc utiliza padrões de design orientados a objetos e incorpora uma exposição algorítmica com práticas modernas de software. O texto e o pacote de recursos que o acompanham permitem que qualquer instrutor ensine um curso completo e convincente sobre construção de compiladores em um único semestre.

É uma referência e tutorial ideal para estudantes, engenheiros de software, analistas de sistemas e arquitetos de software.

Clique aqui para adquirir esse livro


15. Modern Compiler Implementation in ML

15

Este novo e expandido livro descreve todas as fases de um compilador moderno: análise lexical, análise, sintaxe abstrata, ações semânticas, representações intermediárias, seleção de instruções por meio de correspondência de árvore, análise de fluxo de dados, alocação de registro de coloração de gráfico e sistemas de tempo de execução.

Inclui uma boa cobertura das técnicas atuais de geração de código e alocação de registradores, bem como linguagens funcionais e orientadas a objetos, que estão faltando na maioria dos livros.

Clique aqui para adquirir esse livro


Acompanhe a série #QueroLer aqui no blog onde haverão indicações de outros livros de Programação e Tecnologia!

Veja Também

. . . . . . . . . . . . . . . . . . . . . . . . . .