Executando verificação de segurança...
4

Uma conversa sobre pesquisa em ciencia da computação

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?

Não tomem meu título como um limite do assunto, confio que não é expressável o quanto prefiro a opinião de alguém de verdade do que uma resposta de aprendizado de máquina (Machine Learning). Eu poderia perguntar para Ia, mas sinceramente é desse tipo de diálogo que sinto falta desde criação e justamente o tipo de diálogo que a ia vai tornar cada vez mais raro a partir de agora.

Do meu ponto de vista iniciante, eu estudar Haskell já é um peso enorme para o início da minha carreira. Quero ir para além de linguagens como Bend, Idris 2, Agda, Coq, etc. Elas abusam de conceitos como Programação funcional, combinadores de interação, tipos dependentes, HoTT, CTT e mais outras coisas que estou bebendo das introduções.

Fiz Analise e desenvolvimento de sistemas, numa faculdade meia bomba, e estou no Curso.Dev do mano Deschamps para me adequar ao mercado de trabalho. E dar mais materialidade a esse sonho de um dia o software livre ser onipresente assim como o GNU-Linux. Que tenhamos uma nova revolução de software e hardware(Risk-V), onde as empresas simplesmente não Consigam ignorar, seria como furar uma gigantesca bolha social (uma que afoga meus sonhos de criança Cientista da computação).

Extra: conheçam o Guix System, Distro 100% software livre melhor que o NixOS. Rodar numa máquina virtual é super fácil, em hardware comum consultem NonGuix, para quem manja é o suficiente para instalar. Dito isso estou postando de um archinstall com Gnome.

Se puderem compartilhar, agradeço, como escritor e como programador iniciante.

Se alguém conseguir me ajudar a instalar o Guix System em uma máquina AMD também agradeço. Ou melhor ainda, seria conseguir me encontrar um notebook compatível no Brasil. Mas aqui acho que já é utopia haha. ;(

Carregando publicação patrocinada...
1

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 !