Свой язык

Ребята, которые знают о моём увлечении языками программирования, спрашивают почему я до сих пор свой язык не придумал. Ну, почему же не придумал? Можно вспомнить, например, Price Contertor Small Talk (восьмой язык снизу), язык полный по Тьюрингу, был придуман в 1998 году, интерпретатор, кажется, был на Перле.

Не увидел свет интерпретируемый язык, основная идея которого была в том, что по pipe (как в PowerShell) идут объекты, а, кроме этого, поток можно было направлять в любую сторону (как в Befunge, только у меня поток данных, а не выполнения) и ветвить (как в команде tee, в Linux).

Было ещё несколько подобных вещей, сейчас уже их не найти.

А недавно, листая свои дневники жизни, я обнаружил следующую запись:

18/X - 1991 год

Стал кое-что понимать в Рапире, Алг. языке, Ф<неразборчиво, возможно «Фокале»>, скоро и с Ассемблером разберусь. Написал небольшую брошюру — проект своего языка «BASISE» («Базис»).
Что это был за язык я совершенно не помню, но, кажется, это был мой первый эксперимент на эту тему.
24 мая 2011 11:36

bolk (bolknote.ru)
24 мая 2011, 12:33

Не говоря уже о DSL. Например, когда я работал в «Казанском портале», придумал DSL (ребята его потом ещё допилили) для описание ограничений форм, правила проверялись сразу на сервере и клиенте. Вот на что это было похоже:

user !{$#} Логин не задан
user !userExists({$#}) Пользователь не существует

pass !{$#} Пароль не задан
pass is_null({{{_USER}}} = userLogon($user, {$#})) Пароль задан неверно

Применялось тогда это очень широко.

Дмитрий (инкогнито)
24 мая 2011, 12:50

Жень, помня тебя в этом лохматом году я вспоминаю твое увлечение достаточно самобытным языком программирования на "Ф"- это был конечно же ФОРТ (язык программирования, в котором программы записываются в постфиксной записи и в стековой нотации). А вот ФОКАЛ наврят ли ты изучал, да и начал что-то понимать в нем- смешно. ФОКАЛ применялся на БК 0010. Это был, кажется, бейсикоподобный язык. Понимать там был нечего. А вот необычность ФОРТа, я помню мы с тобой обсуждали.

bolk (bolknote.ru)
24 мая 2011, 12:54, ответ предназначен Дмитрию

Жень, помня тебя в этом лохматом году я вспоминаю твое увлечение достаточно самобытным языком программирования на "Ф"- это был конечно же ФОРТ (язык программирования, в котором программы записываются в постфиксной записи и в стековой нотации).
Про ФОРТ я помню :) Но на этой странице точно не ФОРТ написан, кроме того, на следующей всё-таки упоминается Фокал. По Фокалу у меня брошюрка была, купленная в нашем книжном, ещё несколько лет назад она лежала дома у родителей.
А вот ФОКАЛ наврят ли ты изучал, да и начал что-то понимать в нем- смешно. ФОКАЛ применялся на БК 0010. Это был, кажется, бейсикоподобный язык. Понимать там был нечего.
Ну и, соответственно, Фокал я учил по той брошюрке. Там были свои интересные вещи, в «99» (http://bolknote.ru/99.html) у меня он есть, 41-й язык снизу.

Дмитрий (инкогнито)
24 мая 2011, 12:55

И еще, чуть позже, ты стал увлекаться Си. Собственно, на сколько помню, твои изыскания по собственному языку были во многом из него и заимствованы. Помниться, тогда еще мулька такая ходила, де Терминатора-2, который Т-1000 нарисовали на Си. Так что Си звучало круто и даже хотелось верить, что стоит освоить Си и сможешь и сам рисовать терминаров не хуже :)

Дмитрий (инкогнито)
24 мая 2011, 12:59

эээ... справедливости ради, скажу, что терминатора на Си ты не собирался рисовать. Изучал так, ради интереса- была у тебя такая синенькая книжка отпечатанная на принтере матричном - небольшая для учебного пособия по Си.

bolk (bolknote.ru)
24 мая 2011, 13:07, ответ предназначен Дмитрию

В 1991-м про Си я ещё не знал :) Си в поле моего зрения появился гораздо позднее, когда у меня уже 286 был, тогда папа принёс с работы пару учебников по этому языку. Надо сказать, что язык мне тогда не понравился своим синтаксисом, гораздо сильнее мне нравился Паскаль :)

Вот, кстати, страница из дневника, где упоминается неразборчивый язык на «Ф»:

basise1.jpghttp://fotki.yandex.ru/users/bolknote/view/324851/?page=0

bolk (bolknote.ru)
24 мая 2011, 13:15, ответ предназначен Дмитрию

А вот как выглядела брошюрка по ФОКАЛУ: http://www.libex.ru/detail/book91959.html

bolk (bolknote.ru)
24 мая 2011, 13:33, ответ предназначен Дмитрию

O!

bolk$ wget ftp://www.cozx.com/pub/langs/focal.tar.gz
bolk$ tar xvfz focal.tar.gz
bolk$ cd focal-1.0.2
bolk$ sed -ie 's!^INSTDIR.*!INSTDIR = /usr/local/Cellar/focal/1.0.2/!' Makefile
bolk$ make gnukfreebsd
bolk$ make install
bolk$ brew link focal
bolk$ focal

FOCAL-1.0.2 execution begins
*ASK "HOW ARE YOU?"
HOW ARE YOU?*

bolk (bolknote.ru)
24 мая 2011, 13:34

И моя «Песня про пиво» на ФОКАЛе не работает, оказывается :(

bolk (bolknote.ru)
24 мая 2011, 13:42

Почему-то эта версия интерпретатора не понимает отрицательный шаг.

bolk (bolknote.ru)
24 мая 2011, 13:46

Так и есть, вот реализация цикла (команда FOR):

if (!err_flag && (p->for_limit >= v1))
{
  /* Set up FOR stack */
  p->for_ptr = for_top;
  for_top = p;
  /* Set up PC stack */
  pcpush();
  pc_top->pc_flags = FOR_FLG;
  /* Execute loop */
  execline();
}

bolk (bolknote.ru)
24 мая 2011, 13:47

Если изменить счётчик цикла с 99…1 на 1…99, то всё работает. Значит реализация просто неполная.

mr-simm (mr-simm.livejournal.com)
24 мая 2011, 15:00, ответ предназначен bolk (bolknote.ru):

Судя по "сколо" вполне возможен и "Фокал" :)

bolk (bolknote.ru)
24 мая 2011, 15:27, ответ предназначен mr-simm (mr-simm.livejournal.com):

Дневник был для себя, я там ещё меньше заморачивался с поиском ошибок, чем сейчас :)

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)