Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки Cтатьи на компьютерные темы Компьютерный юмор Новости и прочее

Описание языка

В этом разделе будем накопливать описание тех аспектов языка программирования, которые были обсуждены и согласованы. Описание должно быть как формальное, так и неформальное, а так же должны быть приведены примеры для лучшего понимания.

Последняя правка: 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

Авторизация

Регистрация

Выслать пароль

Карта сайта


Каким должен быть язык программирования?

Анализ и критика

Описание языка

Философия языка

Компилятор

Отечественные разработки

Cтатьи на компьютерные темы

Компьютерный юмор

Новости и прочее

Последние комментарии

2018/12/16 17:17 ••• Геннадий Тышов
✎ Программирование без программистов — это медицина без врачей

2018/12/07 08:57 ••• Автор сайта
✎ Почему обречён язык Форт

2018/12/07 08:36 ••• Автор сайта
✎ Нужны ли беззнаковые целые?

2018/12/03 13:51 ••• kt
✎ Экстракоды при синтезе программ

2018/11/30 17:56 ••• Freeman
✎ Изменение приоритетов операций

2018/11/30 17:20 ••• Автор сайта
✎ Почему языки с синтаксисом Си популярнее языков с синтаксисом Паскаля?

2018/11/26 14:23 ••• Автор сайта
✎ Так ли нужны операции «&&», «||» и «^^»?

2018/11/18 15:21 ••• Freeman
✎ Устарел ли текст как форма представления программы

2018/11/17 03:28 ••• Comdiv
✎ Изменение длины объекта в стеке во время исполнения

2018/11/16 12:53 ••• Автор сайта
✎ Помеченные комментарии

2018/11/11 14:01 ••• Александр Коновалов aka Маздайщик
✎ Нерабочий код

2018/11/11 13:39 ••• Александр Коновалов aka Маздайщик
✎ О русском языке в программировании