Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Язык программирования ГАРФ

Из случайно оборонённого комментария к одной из статей в интернете, узнал о существовавшем когда-то функциональном языке программирования ГАРФ (GARF — Generalized Arithmetic Recursive Functions), разрабатываемом в середине 1960-х Ильёй Шмаиным, советским специалистом в области математической логики и языков программирования.

Информации о языке очень мало, наиболее полное упоминание в рунете я нашёл в статье, которая так и называется  — «Илья Шмаин»: 

Это больше, чем язык программирования, это некоторый способ, стиль программирования вместе с математической теорией этого стиля. Это программирование на основе рекурсивных функций, опирающееся на классические работы Клини и одно их обобщение, сделанное Есениным-Вольпиным.

ГАРФ — это язык функционального программирования. Но он намного более абстрактен и универсален, чем первые языки такого типа. На нем можно было определять произвольные типы объектов и произвольные (но вычислимые) функции и функционалы на этих объектах.

  1. Точное описания синтаксиса и семантики. При этом синтаксис языка не фиксировался жестко. Описывалась «глубинная структура» и ее отображения в разные «поверхностные структуры», т. е. программист в принципе мог выбирать удобный для него синтаксис программы. Описывалась теоретико-модельная семантика языка и вычисления, соответствующие этой семантике.
  1. Упомянутые выше «индуктивно-определяемые области» содержали, в частности, идею того, что позже стало называться объектно-ориентированным програмированием (или абстрактными типами данных). Т. е. язык содержал средства для задания любых типов объектов с заданными на них функциями и отношениями, а потом уже на такого рода областях задавалась сама программа.
  1. То, что в ГАРФе «и функции, и области понимаются в самом широком смысле», означало, что можно было задавать любые функционалы, причем их определение могло содержать параметры (тем самым тип функций и объектов не фиксировался жестко).

В общем, ничего конкретного в статье нет, а жаль — упомянутое интересно, любопытно было бы взглянуть!

Ctrl ←Цу-е-фа
14 комментариев
twitter.com/dizzy57 2014

Ильём?

Евгений Степанищев (bolknote.ru) 2014

Комментарий для https://twitter.com/dizzy57:

Поправил, спасибо!

Алексей 2014

Найти статью И.Х.Шмаина не сложно ( http://gen.lib.rus.ec/book/index.php?md5=2524E8BC0FC11FC3EC26453EAC790B34 ). Текст не простой и предполагает приличный уровень знакомства с мат.логикой. Больше ничего найти не удалось

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Алексей:

Спасибо большое! Попробую хотя бы глянуть, приличного уровня матлогики у меня уже, скорее всего, не наблюдается — за 13 лет с окончания Университета некуда было эти знания приложить.

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Алексей:

Посмотрел. На мой взгляд, это совсем не та статья, на которую ссылается автор процитированных мемуаров.

Алексей 2014

Да, я тоже посмотрел. В общем-то статья не совсем о том. Но тема близкая — теория рекурсивных функций и теория логического вывода. Найти бы публикацию в ЦНИИ автоматизации, но как это сделать — ума не приложу.
Да, к слову, вдруг заинтересует: в те же годы В.Ф.Турчиным был разработан язык РЕФАЛ. Не скажу — похожи ли РЕФАЛ и ГАРФ, но язык интересный и до сих пор живой (информации по РЕФАЛ-у много, например, тут http://refal.botik.ru/%29

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Алексей:

http://bolknote.ru/99.html №40

Алексей 2014

Точно :)

Георгий 2014

Видели, я выложил?
http://ru-lambda.livejournal.com/148881.html

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Георгий:

Видел, спасибо!

Георгий 2014

Евгений, а скажите, пожалуйста, можно ли сейчас зарабатывать программированием на функциональных языках? Есть места, где за это платят деньги?

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Георгий:

Конечно. Например, в Ульяновске есть такие конторы (на Хаскеле).

Георгий 2014

А как их искать в Москве?

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Георгий:

как обычно —
http://hh.ru
http://moikrug.ru