Вы написали свой собственный эзотерический (или нет) язык?Как это выглядело?

StackOverflow https://stackoverflow.com/questions/2239946

Вопрос

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

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

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

Это было полезно?

Решение

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

  • нетипизированная версия C
  • Схема
  • С
  • Система Ф
  • МЛ
  • Болтовня
  • Пролог

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

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

Другие советы

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

Одним из первых языков, которые я попробовал написать, был ассемблер для MIDI-файлов.Вы должны определить темп и банк инструментов, а затем множество строк нот (название ноты, начальную долю текущего такта, продолжительность, дополнительный акцент), перемежающихся тактовыми линиями («meas ») и динамика (ппп,пп,п,мп,мф,ф,фф,фф).

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

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

Я несколько рад, что все улики надежно спрятаны в неработающем процессоре под тележкой с микроволновой печью.Ужасы!!

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top