Meus 2 cents,
Galera, existe algum caminho para pesquisa em ciência da computação(voltado ao software livre) para eu estudar e criar linguagens que acredito remuneradamente?
Aqui precisa definir algumas coisas - pesquisa normalmente implica em:
-
Universidade publica federal/estadual: tem mais flexibilidade por pesquisa pura, sem uma aplicacao imediata (que me parece o caso). Tem pessoas que gostam deste tipo de dedicacao e sao remunerados por isso (as bolsas sao salarios para pesquisadores). A dificuldade eh entrar em uma universidade destes e depois conseguir a bolsa, mas existem caminhos (CNPq, Finep, programams de iniciacao cientifica, parcerias, etc)
-
Universidades privadas: algumas ate fazem pesquisa, mas geralmente com patrocinio ligado a uma empresa - tenho duvidas se seria o caso aqui.
-
Empresas privadas com areas de P&D (vou citar Embraer e Petrobras para dar uma ideia, mas existem diversas empresas em areas bem diversas que fazem este tipo de acao): Voce pode conseguir uma empresa que tenha necessidade especial pelo que voce pesquisando e entao patrocinar tua bolsa/trabalho.
Em qualquer das opcoes acima, uma coisa que faz diferenca eh participar de forma ativa das comunidades voltadas ao assunto de interesse: voce conhece as pessoas, ve o que elas estao fazendo, mostra o que voce esta fazendo, vao trocando dados e eventualmente surgem parcerias. Mas da trabalho, exige um bocado de energia e pode demorar para maturar e comecar a dar resultado financeiro concreto.
O que comentei acima serve tanto para nacional como gringa. Muitas pessoas se formam em universidades publicas no Brasil e conseguem projetos de intercambio para prosseguir estudos na gringa. Novamente - participar e conhecer pessoas eh fundamental para conseguir avancar. O estudo solitario pode trazer satisfacao individual - mas eh a colaboracao que pode te permitir avancar na atividade.
Quanto ao teus sonhos - sao teus e de mais ninguem. Se valem a pena ou nao, se sao tangiveis ou nao eh voce que vai descobrir - mas o que posso destacar eh: nao vao vir sem persistencia. Sobre o assunto tem um livro que pode servir de inspiracao: "Pressa de futuro: Como Luiz Donaduzzi criou uma gigante farmacêutica e uma revolução na educação" sobre os laboratorios Pratti" (disponivel de graca via assinatura Kindle Unlimited que custa R$ 20 na amazon, ou seja, mais barato assinar o kindle, ler pela web que comprar o livro fisico, noves fora poder ler todo o catalogo kindle unlimited).". O livro tem problemas (nao critica negativamente o biografado, so fala bem dele), mas pelo menos mostra que vida de pesquisador nao eh facil e que as vezes tem de ralar alternativas para fazer a coisa acontecer. De haver outros livros de graca tao bons quanto esse sobre o assunto - mas nao lembro, neste ponto a IA pode te ajudar.
Se voce gosta de "criar linguagens" - uma bibliografia basica poderia ser (faceis de encontrar em PDF para download):
OBS: Nao sao leituras "tradicionais" para um iniciante - mas se voce quer trabalhar criando linguagens, faz parte da brincadeira.
OBS 2: Sim, pedi para o gepeto criar a lista, mais por dificuldade de achar todas as referencias que precisaria, mas ele fez um trabalho razoavel praticamente tem tudo que ia recomendar (em especial e imprescindivel no topico 1, como Tanenbaum e "dragao").
1. Fundamentos de Compiladores e Linguagens
-
Aho, A. V., Lam, M. S., Sethi, R., Ullman, J. D.
Compilers: Principles, Techniques, and Tools (2nd Edition). Pearson, 2006.
→ Conhecido como “O Dragão”. É a obra clássica sobre compiladores — cobre análise léxica, sintática, semântica e geração de código. Leitura obrigatória para qualquer pessoa que projete uma linguagem. -
Tanenbaum, A. S., & Bos, H.
Modern Operating Systems (4th Edition). Pearson, 2014.
→ Embora não trate diretamente de linguagens, Tanenbaum contextualiza o impacto das linguagens na implementação de sistemas operacionais, especialmente em C e C++. Útil para entender o elo entre linguagem e arquitetura. -
Wirth, N.
Compiler Construction. Addison-Wesley, 1996.
→ Um livro mais enxuto e direto que o Dragão, escrito pelo criador de Pascal e Modula. Foca na clareza conceitual e na construção prática de compiladores simples.
2. Teoria das Linguagens e Autômatos
-
Hopcroft, J. E., Motwani, R., & Ullman, J. D.
Introduction to Automata Theory, Languages, and Computation (3rd Edition). Pearson, 2007.
→ Fundamenta os conceitos formais de gramáticas, autômatos e linguagens — base teórica para qualquer sintaxe de linguagem de programação. -
Scott, M. L.
Programming Language Pragmatics (4th Edition). Morgan Kaufmann, 2015.
→ Excelente livro que une teoria e prática. Discute sintaxe, semântica, implementação e comparação entre paradigmas (imperativo, funcional, OO, lógico etc.).
3. Paradigmas e Design de Linguagens
-
Sebesta, R. W.
Concepts of Programming Languages (12th Edition). Pearson, 2023.
→ Cobre a evolução histórica e os conceitos fundamentais de design. Um dos livros mais adotados em cursos universitários. -
Tucker, A., & Noonan, R.
Programming Languages: Principles and Paradigms. McGraw-Hill, 2006.
→ Aborda com clareza os princípios que guiam a criação de linguagens e os diferentes paradigmas de programação. -
Pierce, B. C.
Types and Programming Languages. MIT Press, 2002.
→ Obra de referência sobre sistemas de tipos, inferência e segurança em linguagens modernas. Mais teórica, mas indispensável para projetos robustos.
4. Implementações e Projetos Práticos
-
Nisan, N., & Schocken, S.
The Elements of Computing Systems: Building a Modern Computer from First Principles. MIT Press, 2005.
→ Conduz o leitor na criação de um computador completo, incluindo uma linguagem simples e seu compilador. Excelente para compreender a integração hardware–software. -
Abelson, H., Sussman, G. J., & Sussman, J.
Structure and Interpretation of Computer Programs (SICP). MIT Press, 1996.
→ Clássico absoluto sobre abstração e interpretação de linguagens. Ensina a pensar como projetista de linguagens, não apenas como programador. -
Pratt, T. W., & Zelkowitz, M. V.
Programming Languages: Design and Implementation (4th Edition). Prentice Hall, 2001.
→ Livro equilibrado entre teoria e prática, cobre detalhadamente análise léxica, semântica e execução.
5. Leituras Complementares e Contemporâneas
-
Hudak, P.
“Conception, Evolution, and Application of Functional Programming Languages.” ACM Computing Surveys, 21(3), 1989.
→ Artigo clássico sobre o desenvolvimento das linguagens funcionais e sua filosofia. -
Hoare, C. A. R.
“The Emperor’s Old Clothes.” Communications of the ACM, 24(2), 1981.
→ Uma reflexão histórica e filosófica sobre os acertos e erros no design de linguagens — leitura fundamental. -
Stroustrup, B.
The Design and Evolution of C++. Addison-Wesley, 1994.
→ Um estudo de caso detalhado sobre a evolução de uma linguagem amplamente usada.
Nao esqueca de continuar compartilhando tua jornada, tem muitas pessoas que tem curiosidade em saber como voce se seguiu.
Saude e Sucesso !