Pergunta

Eu vi uma pergunta poucos em relação favoritos línguas esotéricas (ou não) a programação dos usuários stackoverflow. Há também questões relativas à implementação de linguagens. No entanto, eu estava curioso para ver se algum de vocês têm realmente escrito a sua própria linguagem de programação (seja esotérica ou não) e eu também queria saber o que parece.

Gosto de ler sobre e tentando aprender novos e inventivos línguas, então eu pensei que seria bom para ver o que a comunidade stackoverflow tem para oferecer. :)

escreveu um por diversão, há alguns anos.

Foi útil?

Solução

Eu escrevi um conjunto de 7 línguas "micro" para o ensino. Cada um é feito para ilustrar as idéias-chave de uma das seguintes linguagens de programação completa:

  • uma versão sem tipo de C
  • Esquema
  • C
  • Sistema F
  • ML
  • Smalltalk
  • Prolog

As línguas deliberadamente parecem muito um como o outro, para que os alunos ver únicas diferenças essenciais, nunca queridos gratuitas. Eu quero fazer mais dois, com base em Haskell e CLU.

Sam Kamin teve a ideia original e ajudou muito com o projeto.

Outras dicas

Eu tenho trabalhado e desligando em DIFL, concebido como uma linguagem de aventura de texto declarativa, mas cada vez menos declarativa ao longo do tempo. Suas principais características são um sistema de objetos muito solto e um sistema de ação baseado em multimétodos. (Bem, suas principais características serão, supondo que eu nunca terminá-lo.)

Uma das primeiras línguas que eu tentei escrever era uma linguagem de montagem MIDI-arquivo. Você iria definir Tempo e bancários instrumento e, em seguida, lotes de linhas da nota (note-nome, iniciando-beat-of-the-corrente medida, duração, acento opcional), pontuado por linhas de barra ( "meas \ n"), e dinâmica (ppp, pp, p, pf, MF, f, ff, fff).

Não foi realmente utilizável sem uma linguagem macro de seqüências repetidas, mudar de canal, e deitou-se novas faixas. Que exigia a minha primeira tabela hash, e uma tricksy cross-your-dedos chamar para qsort para intercalar os canais de tempo de seqüência (realizada implicitamente por cada evento Nota-On / Nota-Off).

Quando voltei para o mesmo um ano depois, que tinha sido vítima de bit-rot. Depois de não pouca luta eu redescobri que a função de ordenação-and-output-tudo foi desencadeada por um código de EOF explícito. Uma música expandiu-macro foi facilmente 20.000 linhas com essa linha EOF cruciais tendo, portanto, 1/20000 de uma chance de ser descoberto ao tentar descobrir exatamente o que diabos está acontecendo de errado!

Estou um pouco satisfeito que toda a evidência é dobrado com segurança afastado em uma CPU morto debaixo do carrinho de microondas. Os horrores !!

Editar: Após uma reflexão mais aprofundada, há algumas coisas interessantes sobre o formato MIDI. Tem um tipo inteiro de comprimento variável (IIRC usando o bit de sinal para sinalizar o último byte). É de byte-oriented, sendo projetado para executar mais de 9 fios paralelos; e tem alguma coisa de sincronização de tempo louco Eu nunca entendi. Mas tudo o que importava era que o media player Windows95 poderia interpretar a saída (que poderia até mesmo usar o 8bit General MIDI banco tom embutido na placa de som; os pratos foram gloriosamente distorcida).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top