Вы написали свой собственный эзотерический (или нет) язык? Как это выглядело? - PullRequest
5 голосов
/ 10 февраля 2010

Я видел несколько вопросов относительно любимых эзотерических (или нет) языков программирования пользователей stackoverflow. Есть также вопросы относительно реализации языков. Однако мне было любопытно посмотреть, написал ли кто-нибудь из вас свой собственный язык программирования (будь то эзотерический или нет), и я также хотел знать, как он выглядит.

Мне нравится читать и пытаться изучать новые и изобретательные языки, поэтому я подумал, что было бы неплохо увидеть, что может предложить сообщество stackoverflow. :)

Я написал один для развлечения несколько лет назад.

Ответы [ 4 ]

4 голосов
/ 11 февраля 2010

Я написал набор из 7 "микро" языков для обучения. Каждый из них предназначен для иллюстрации ключевых идей одного из следующих полных языков программирования:

  • нетипизированная версия C
  • Схема
  • C
  • Система F
  • ML
  • Smalltalk
  • Пролог

Языки сознательно очень похожи друг на друга, поэтому учащиеся видят только существенные различия, а не безвозмездные. Я хочу сделать еще два, основываясь на Haskell и CLU.

Сэм Камин имел оригинальную идею и очень помог с дизайном.

2 голосов
/ 22 сентября 2011

Одним из первых языков, которые я пытался написать, был язык ассемблера MIDI-файлов.Вы должны определить темп и банк инструментов, а затем множество строк нот (имя ноты, начальный ритм текущего измерения, длительность, необязательный акцент), пунктирные линии («мера \ n») идинамика (ppp, pp, p, mp, mf, f, ff, fff).

На самом деле без макроязыка не было бы возможности повторять последовательности, менять каналы и накладывать новые треки.Для этого потребовалась моя первая хеш-таблица и хитрый перекрестный вызов к qsort для чередования каналов по временной последовательности (неявно передаваемой каждым событием Note-On / Note-Off).

Когда я пришелвернемся к нему год спустя, он стал жертвой гниения.После немалой борьбы я обнаружил, что функция sort-and-output-everything была вызвана явным кодом EOF.Макро-расширенная песня легко составляла 20 000 строк с этой важной строкой EOF, имеющей, следовательно, 1/20000 шанса быть замеченным при попытке выяснить, что, черт возьми, идет не так!Приятно, что все улики благополучно спрятаны в мертвом процессоре под микроволновой тележкой.Ужасы !!

Редактировать: После дальнейшего размышления есть некоторые интересные вещи о формате MIDI.Он имеет целочисленный тип переменной длины (IIRC использует бит знака для сигнализации последнего байта).Он ориентирован на байты и рассчитан на 9 параллельных проводов;и у него есть сумасшедшая вещь с синхронизацией времени, которую я никогда не понимал.Но все, что меня беспокоило, это то, что медиаплеер Windows95 мог интерпретировать вывод (он мог даже использовать встроенный в звуковую карту 8-битный банк MIDI-тонов; тарелки были великолепно искажены).

2 голосов
/ 11 февраля 2010

Я работал над DIFL, задуман как декларативный текстовый язык приключений, но со временем стал менее декларативным. Его основными особенностями являются очень свободная объектная система и система действий, основанная на мультиметодах. (Ну, его основные черты будут, если я когда-нибудь закончу.)

2 голосов
/ 11 февраля 2010
...