Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Здравствуйте, PC_2, Вы писали:
KV>Конечно. Только еще нужно, чтобы этот синтаксис был понятен. Уверен, что если бы вы перед примерами описали грамматику языка (хотя бы в двух словах), то вопросов и негатива было бы меньше.
PC_>>Вот когда у меня рождается в голове микро программа, я просто сажусь и набираю ее за минуту-две.
PC_>>Ну где еще такое возможно ? Программы настолько лаконичны, что я их держу в памяти, и их набирать могу на клавиатуре мобильного.
KV>Ну это же совсем другой разговор. Я ведь не утверждаю, что такой язык не нужен. Сейчас, в качестве языка для прототипирования очень многие используют питон (мне, например, до сих пор тяжело реализовывать некоторые питоньи конструкции даже на немерле), именно потому что он позволяет максимально просто и кратко выражать довольно сложные мысли. Вот, к примеру, решение задачи о ферзях, упомянутой выше:
KV>KV>from itertools import permutations
KV>n = 8
KV>cols = range(n)
KV>for vec in permutations(cols):
KV> if n == len(set(vec[i]+i for i in cols)) == len(set(vec[i]-i for i in cols)):
KV> print ("\n".join('.' * i + 'Q' + '.' * (n-i-1) for i in vec) + "\n===\n")
KV>
И скольо это заняло времени закодить, кстате говоря ?
KV>ну разве не прелесть?
Я не просто так упомянул про математиков. Большинство программистов знакомы с грамматикой математических вычислений. Также, они знакомы с пересечением множеств грамматик известных им языков программирования и оно весьма велико, т.к. есть устоявшиеся стандарты записи многих языковых конструкций, функций высшего порядка, комбинаторов, паттернов в конце-концов и т.п. Большинство программистов мыслят именно этими категориями. Так к чему заставлять их помнить еще одну грамматику, какой бы короткой она не была, если можно сделать элементами этой грамматики те самые "кирпичики", которыми мыслят разработчики? Зачем свертку называть "/", если хаскелист будет думать о ней как о "foldr", немерлист как о "FoldRight" и т.п., если у этой ФВП уже есть название? Впрочем, если левую свертку назвать "\", отображение "|", а фильтрацию ":", то в этом возможно будет некий интуитивный смысл.
KV>Т.е., идея здравая, только к вопросам грамматики нужно подойти т.о., чтобы не получить в итоге еще один полноценный развесистый язык, который бы пришлось заново учить.
Не стоит преждевременно натягивать штампы других языков.
Пускай себе Пайтоны и прочьи пасуться отдельно, а я отдельно со своими экспериментами.
А потом уж как-то будем сравнивать. Пока что лидер, на малом множестве микро программ, дальше поглядим.
PC_>>Вместе с тем на стандартном языке Шарп, Немерла, Джава, написание таких программок превращается в маленький геморой.
KV>Я бы, кстати, советовал, по крайней мере, на этапе экспериментов с языком, воспользоваться нашим макросом PegGrammarАвтор: Чистяков Владислав Юрьевич
Дата: 11.12.10
. С одной стороны, реализовывать грамматику в нем — одно удовольствие, с другой, получив при этом все прелести немерла или шарпа на выбор, у вас была бы возможность бок о бок сравнивать их со своим языком, постепенно добавляя необходимые конструкции и выражения и не парясь по поводу парсинга, интерпретации и т.п. А когда грамматика устаканиться, то реализуете ее на чем вам хочется.
KV>Реально меньше времени потратите на накладные расходы и сможете больше времени уделить самому языку.
Это не нужно. Транслятор как не странно на шарпе пишется довольно просто. Все приложение может 20-30кб занимает
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН