Re[15]: Ультракороткий язык программирования RS
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 21.12.10 18:28
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Спасибо, посчитал что средняя программа на Немерле на простых примерах примерно в три раза — четыре раза длинее.

PC_>Ну и малопонятней, учитывая количество шифтовых символов и т.д. Но последнее, как понимаете субьективно. Ну да ладно.

Фигурные скобки в немерле необязательны, он также поддерживает питоновский стиль определения структуры отступами. Но так или иначе, определение структуры в нем обязательно да.

PC_>Короткий и мощный синтаксис это же очень классно.


Конечно. Только еще нужно, чтобы этот синтаксис был понятен. Уверен, что если бы вы перед примерами описали грамматику языка (хотя бы в двух словах), то вопросов и негатива было бы меньше.

PC_>Вот когда у меня рождается в голове микро программа, я просто сажусь и набираю ее за минуту-две.

PC_>Ну где еще такое возможно ? Программы настолько лаконичны, что я их держу в памяти, и их набирать могу на клавиатуре мобильного.

Ну это же совсем другой разговор. Я ведь не утверждаю, что такой язык не нужен. Сейчас, в качестве языка для прототипирования очень многие используют питон (мне, например, до сих пор тяжело реализовывать некоторые питоньи конструкции даже на немерле), именно потому что он позволяет максимально просто и кратко выражать довольно сложные мысли. Вот, к примеру, решение задачи о ферзях, упомянутой выше:

from itertools import permutations
 
n = 8
cols = range(n)
for vec in permutations(cols):
    if n == len(set(vec[i]+i for i in cols)) == len(set(vec[i]-i for i in cols)):
        print ("\n".join('.' * i + 'Q' + '.' * (n-i-1) for i in vec) + "\n===\n")


ну разве не прелесть? Я не просто так упомянул про математиков. Большинство программистов знакомы с грамматикой математических вычислений. Также, они знакомы с пересечением множеств грамматик известных им языков программирования и оно весьма велико, т.к. есть устоявшиеся стандарты записи многих языковых конструкций, функций высшего порядка, комбинаторов, паттернов в конце-концов и т.п. Большинство программистов мыслят именно этими категориями. Так к чему заставлять их помнить еще одну грамматику, какой бы короткой она не была, если можно сделать элементами этой грамматики те самые "кирпичики", которыми мыслят разработчики? Зачем свертку называть "/", если хаскелист будет думать о ней как о "foldr", немерлист как о "FoldRight" и т.п., если у этой ФВП уже есть название? Впрочем, если левую свертку назвать "\", отображение "|", а фильтрацию ":", то в этом возможно будет некий интуитивный смысл.

Т.е., идея здравая, только к вопросам грамматики нужно подойти т.о., чтобы не получить в итоге еще один полноценный развесистый язык, который бы пришлось заново учить.

PC_>Вместе с тем на стандартном языке Шарп, Немерла, Джава, написание таких программок превращается в маленький геморой.


Я бы, кстати, советовал, по крайней мере, на этапе экспериментов с языком, воспользоваться нашим макросом PegGrammar
Автор: Чистяков Владислав Юрьевич
Дата: 11.12.10
. С одной стороны, реализовывать грамматику в нем — одно удовольствие, с другой, получив при этом все прелести немерла или шарпа на выбор, у вас была бы возможность бок о бок сравнивать их со своим языком, постепенно добавляя необходимые конструкции и выражения и не парясь по поводу парсинга, интерпретации и т.п. А когда грамматика устаканиться, то реализуете ее на чем вам хочется.

Реально меньше времени потратите на накладные расходы и сможете больше времени уделить самому языку.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.