Domanda

Ho visto un paio di domanda per quanto riguarda preferite lingue esoteriche (o meno) la programmazione degli utenti StackOverflow. Ci sono anche questioni riguardanti l'attuazione delle lingue. Tuttavia, ero curioso di vedere se qualcuno di voi ha effettivamente scritto il proprio linguaggio di programmazione (sia esso esoterica o meno) e volevo anche sapere che cosa assomiglia.

Mi piace leggere circa e cercando di imparare nuovi e fantasiosi lingue, quindi ho pensato che sarebbe stato bello vedere ciò che la comunità StackOverflow ha da offrire. :)

I ha scritto una per divertimento a pochi anni fa.

È stato utile?

Soluzione

Ho scritto una serie di 7 "micro" lingue per l'insegnamento. Ognuno ha lo scopo di illustrare le idee chiave di una delle seguenti lingue piena di programmazione:

  • una versione non tipizzata di C
  • Schema
  • C
  • Sistema F
  • ML
  • Smalltalk
  • Prolog

I linguaggi volutamente un aspetto molto uno come l'altro, in modo che gli studenti vedono solo le differenze essenziali, mai quelli gratuiti. Io voglio fare più di due, sulla base di Haskell e CLU.

Sam Kamin avuto l'idea originale e aiutato molto con il design.

Altri suggerimenti

Ho lavorato fuori e sopra il DIFL, inteso come linguaggio di un'avventura testuale dichiarativo, ma sempre meno dichiarativa nel corso del tempo. Le sue caratteristiche principali sono un sistema oggetto molto sciolti e un sistema basato su un'azione multimethods. (Beh, le sue caratteristiche principali saranno, supponendo che io abbia mai finire.)

Una delle prime lingue Ho cercato di scrivere era un linguaggio assembly MIDI-file. Faresti definire il tempo e la banca strumento e poi un sacco di linee nota (nota-nome, partendo-beat-of-the-corrente-misura, la durata, l'accento opzionale), punteggiato da stanghette ( "meas \ n"), e dinamica (ppp, pp, p, mp, mf, f, ff, fff).

Non è stato realmente utilizzabile senza un linguaggio macro per ripetere sequenze, cambiare canale, e stabilire nuove tracce. Che ha richiesto la mia prima tabella di hash, e una furbata cross-your-dita chiamano a qsort per interlacciare i canali per sequenza temporale (implicitamente portato da ciascuna Note-On / eventi note-off).

Quando sono tornato ad un anno più tardi, era caduto vittima di bit-rot. Dopo non poca lotta ho riscoperto che la funzione di ordinamento e di uscita, tutto è stato innescato da un codice EOF esplicito. Una canzone macro-espansa era facilmente 20.000 linee con quella linea EOF fondamentale avere, pertanto, 1/20000 di una possibilità di essere individuati quando si cerca di capire che cosa nel diavolo sta andando male!

Sono un po 'contento che tutte le prove sia ben nascosto in una CPU morto sotto il carro forno a microonde. Gli orrori !!

Modifica Su ulteriore riflessione ci sono alcune cose interessanti circa il formato MIDI. Ha un tipo intero di lunghezza variabile (IIRC utilizzando il bit di segno per segnalare l'ultimo byte). È byte-oriented, essendo progettato per funzionare oltre 9 fili paralleli; ed ha qualche pazzo cosa tempo di sincronizzazione non ho mai capito. Ma tutto quello che interessava era che il lettore multimediale Windows 95 potrebbe interpretare l'output (si potrebbe anche utilizzare il 8bit banca tono General MIDI incorporato nella scheda audio, i piatti erano gloriosamente distorta)

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top