Jump to content

Desenvolver uma linguagem de programação para rookies


plynyo

Recommended Posts

Boas,

Depois de alguns anos em cursos relacionados a programação eu vejo que um dos principais problemas de termos poucos programadores é a falta de organização no que toca ao planeamento das unidades curriculares desse género. Vejo muita malta a fugir dos cursos porque a primeira linguagem que lhes ensinaram para programação geal foi um belo C++ para desktop ou PHP, MVC no desenvolvimento web.

É óbvio que isto vai assustar os alunos, sem sequer primeiro terem a noção da lógica e outros tópicos interessantes como a própria algoritmia como é que um aluno se vai safar em linguagens desta dimensão? Quando um rookie olha para uma linha de código em linguagens destas ganha vontade de ser enfermeiro, o scratch é uma plataforma bastante útil mas pouco utilizada, também existe o pascalzim que tem uma interface amigável mas já é antigo, e come on, é Pascal.

Aqui está onde eu quero chegar: tenho idealizado um compilador/interpretador de uma nova linguagem baseada noutra como o Java ou o Python, onde, com uma sintaxe mais intuitiva e uma interface amigável e moderna, os alunos pudessem aprender de uma forma mais controlada a magia da programação.

Além da área de desenvolvimento de código, este software teria problemas de programação de vários níveis nessa mesma linguagem embutidos nele, alguns tutoriais e dicas. Isto seria diretamente direcionado para uso curricular, sendo utilizado principalmente nas escolas do país.

Eu sei que a parte mais difícil daqui é fazer um compilador/interpretador (ainda não sei bem qual utilizar nem a diferença deles na prática) para uma nova linguagem na qual a sintaxe seja definida por mim, mas queria saber a opinião da comunidade sobre como começar, qual ferramenta/linguagem utilizar e qual o grau de dificuldade e demanda que este projeto é estimado levar.

Todo o conhecimento é bem vindo, aceito sugestões de todos os tipos. Antecipadamente grato!

 

Edited by plynyo
Link to comment
Share on other sites

@plynyo,

Parece-me que estás a abordar o problema na sequência errada. Se não sabes ainda qual a diferença prática entre um interpretador e um compilador nem qual utilizar para o teu projecto, diria que primeiro precisas de te informar bastante sobre o assunto. Muito concretamente, antes de tentares fazer uma linguagem para outras pessoas aprenderem a programar, já precisas de saber fazer linguagens simples, que não será utilizada por outras pessoas, para teres uma ideia dos domínios envolvidos (lexing, parsing, árvores sintácticas, etc etc etc).

Já existem linguagens interessantíssimas para quem está a dar os primeiros passos na programação (como referiste, e bem, Python é um bom exemplo). Para considerares fazer mais uma linguagem para que outros utilizem, é necessário que identifiques claramente os pontos fracos das que já existem e de que maneira a tua nova linguagem irá melhorá-los. Exemplificando: se considerarmos que um dos problemas de Python é a falta de exercícios com algoritmos e estruturas de dados, será que vale mesmo a pena fazer uma nova linguagem? Seria necessário fazer os exercícios e além disso criar toda uma nova linguagem. Não seria mais simples investir esse esforço em criar exercícios para Python?

É difícil atingir o equilíbrio entre adicionar complexidade suficiente para tornar a linguagem útil vs remover complexidade suficiente para tornar a linguagem simples/divertida para programar; há linguagens que lutam há anos e anos para serem bem sucedidas nesta frente, e são esforços de décadas de várias pessoas.

Não quero com isto desencorajar-te de criar uma nova linguagem (muito pelo contrário), apenas considero demasiado ambicioso o objectivo de criá-la para ensinar outras pessoas a programar (pelo menos para já). Ainda assim, recomendo vivamente que cries várias pequenas linguagens para resolver problemas concretos e treinar nos diversos aspectos que estão envolvidos na criação de linguagens de programação (interpretadas ou compiladas).

Existe um óptimo livro online para te meteres no assunto, se quiseres: Crafting Interpreters.

  • Vote 1
Link to comment
Share on other sites

  • 2 months later...
Em 30/05/2023 às 16:04, pjmvc disse:

Na minha opinião, a melhor linguagem para começar a aprender a programar é o Visual Basic 6.

Geralmente sou bastante agnóstico acerca das linguagens para iniciar (ao contrário de há uns anos em que tinha opiniões "fortes"), mas Visual Basic 6? Por que motivos consideras a melhor?

 

Knowledge is free!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.