Описание языка
В этом разделе будем накопливать описание тех аспектов языка программирования,
которые были обсуждены и согласованы.
Описание должно быть как формальное, так и неформальное, а так же должны быть приведены примеры для лучшего понимания.
Опубликовано: 2012.09.25, последняя правка: 2014.12.04 13:12
Отзывы
2015/02/19 23:35, rst256 #
Как насчет начать с философии, как у питона? Мне кажется использование внешнего имени функции в рекурсивном вызове не есть гуд:int foo0(int bar){ //must get 100-bar recursive calls if( bar > 100 ) return 0; return foo0(bar+1); /* => return me(bar+1); */ }
int fooO(int bar){ //must get 200-bar recursive calls if( bar > 200 ) return 0; return foo0(bar+1); /* => return me(bar+1); */ }
2015/02/20 11:11, Автор сайта #
А какие есть «противопоказания» у вызова функции, когда имя вызываемой и вызывающей функции совпадают? Какие недостатки в этом кроются? В чём будет выигрыш, если функция будет вызывать саму себя по какому-то ключевому слову типа «me»?
2015/02/22 06:16, rst256 #
А какие различия между х=0 и х=NULL? Именно по таким же соображениям и рекурсия я считаю должна иметь явный вид. К тому же человеку не надо будет менять код внутри функции при изменении её имени. А так же к такому вызову в последствии легче будет приделать, если надо, другой функционал. В зависимости он парадигмы, конечно. Например, вызов «me» также как точка доступа к переменным, замкнутым на уровне только этой рекурсии.me.count++;me(...) а не func(.., count+1) а нюансы изоляции этих переменных задача компилятора — тривиальная задача, если язык обладает встроенными конструкциями для работы с потоками. Не говоря у же о том, что хорошо проработанный компилятор даже сможет развернуть такое в нерекурсивный код при указании, например, специального атрибута или автоматически, если возможно (но я предпочитаю указывать явно)
2015/02/22 16:42, Автор сайта #
В чём-то Ваша идея логична, конечно. Хотя даже в Haskell, где рекурсия сидит на рекурсии и рекурсией погоняет, такого нет. Но Вы, конечно, ведёте речь о прямой рекурсии, а не косвенной.
2015/03/15 08:27, rst256 #
Ну даже не знаю насчет haskell, а для него есть статические анализаторы кода, потому что я не нашел. На нем написанных целую кучу нашел, а для него нет. Может хорошему языку они и не нужны?
2015/06/26 14:37, Иван #
Мое предложение не играет роли, но, как мне кажется, лучше уж тогда зарезервировать слово «self», а не «me».function factorial(n) { ... self(n - 1) ... }
2015/06/26 18:45, Автор сайта #
Для начала надо решить, нужно ли вообще рекурсивный вызов как-то особо выделять. А придумать ключевое слово — это уже технический момент. Кстати, в некоторых языках «self» аналогичен «this» C++.
2016/01/25 21:41, Сергей #
Ребята, привет! А на каком, собственно, этапе продвижение проекта? Честно скажу, UI этого сайта — непонятен и лично для меня не способствует участию в обсуждении соответствующих вопросов. Если проект жив, то https://vk.com/grechkosergeyolegovich или sergio.yacovlev@yandex.ru. Готов принять активное участие в проекте, есть достойные соображения.
2016/01/26 18:28, Автор сайта #
Проект по созданию нового языка программирования находится на этапе анализа, обдумывания и описания того, как должен выглядеть этот язык.
2016/07/25 09:06, Michael #
Если в языке допускаются безымянные функции, то внутри такой функции должна быть возможность как-то вызвать или сослаться на себя. Добавить свой отзыв
Написать автору можно на электронную почту mail(аt)compiler.su
|