Como criar linguagem de programação
Acredito que a matéria de compiladores esteja incluída nos curriculums da maioria dos cursos de graduação plena (os que duram 4 anos, ainda não vi curso de tecnólogo - em geral 3 anos - com essa disciplina), e geralmente o que se aprende é a criar um compilador para uma linguagem já existente, e não desenvolver a linguagem propriamente dita (apesar de que são visto coisas como alfabeto e linguagens; gramáticas; automatos finitos e linguagens regulares; etc.). Já vi o caso de um professor que já tinha desenvolvildo uma linguagem e o que os alunos fizeram foi criar um compilador para esta linguagem, mas claro que isso vai variar de uma instituição para outra.
Como criar linguagem de programação
Citação:
Postado originalmente por poleto
Acredito que a matéria de compiladores esteja incluída nos curriculums da maioria dos cursos de graduação plena (os que duram 4 anos, ainda não vi curso de tecnólogo - em geral 3 anos - com essa disciplina), e geralmente o que se aprende é a criar um compilador para uma linguagem já existente, e não desenvolver a linguagem propriamente dita (apesar de que são visto coisas como alfabeto e linguagens; gramáticas; automatos finitos e linguagens regulares; etc.). Já vi o caso de um professor que já tinha desenvolvildo uma linguagem e o que os alunos fizeram foi criar um compilador para esta linguagem, mas claro que isso vai variar de uma instituição para outra.
Eu tbm acho!! 8)
Como criar linguagem de programação
Citação:
Postado originalmente por edmafer
Agora para você fazer um compilador, é mais complexo, precisará de conhecimente de nivel baixo, para poder trabalhar com hardware (não sei se é possível fazer isto, sem este conhecimento, me corrijam pessoal de Ciencias da Computação), ele vai ler um arquivo com a sua linguagem e a partir dele gerará um executável que possue código de máquina (simplificando o processo, estude sobre compilação que tem outros passos).
edmafer, um compilador e um interpretador são quase idênticos a grande diferença está em que um vai executando as instruções e o outro vai transformando o código em um código objeto.
Ao contrário do que muitos pensam, o compilador não gera um código de máquina (código de máquina, é um código entendível pelo nível mais baixo, o hardware), eles geram um código compreensível pelo sistema operacional (por isso um aplicativo de um sistema operacional dificilmente funcionará em outro, a menos que a API de instruções de SO fornecida, seja EXATAMENTE a mesma).
Respondendo a alguns questionamentos de natasha:
Como já foi explicado, cursos superiores ensinam sim a fazer linguagens de programação, e a disciplina mais básica disso seria arquitetura de computadores (dá uma noção do funcionamento do computador e como as linguagens são entendidas pelo hardware) e compiladores. É obvio que existe muita coisa adiante de compiladores, que é plenamente possível ser abordado em um curso superior.
Faço Eng. de computação e essas disciplinas básicas, para se criar uma linguagem são ministradas na minha instituição pública.
varia de cada instituição
Citação:
Postado originalmente por poleto
Acredito que a matéria de compiladores esteja incluída nos curriculums da maioria dos cursos de graduação plena (os que duram 4 anos, ainda não vi curso de tecnólogo - em geral 3 anos - com essa disciplina), e geralmente o que se aprende é a criar um compilador para uma linguagem já existente, e não desenvolver a linguagem propriamente dita (apesar de que são visto coisas como alfabeto e linguagens; gramáticas; automatos finitos e linguagens regulares; etc.). Já vi o caso de um professor que já tinha desenvolvildo uma linguagem e o que os alunos fizeram foi criar um compilador para esta linguagem, mas claro que isso vai variar de uma instituição para outra.
Isso realmente varia de cada instituição. Na minha, tivemos que fazer uma máquina virtual com um compilador de assembly na disciplina mais básica sobre o assunto.