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

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

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

Опубликовано: 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

Авторизация

Регистрация

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

Карта сайта


Содержание

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

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

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

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

Компилятор

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

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

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

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




Последние отзывы

2021/04/22 18:55 ••• Неслучайный читатель
Некошерный «goto»

2021/04/19 17:01 ••• Клихальт
О наименовании проекта и языка программирования

2021/04/17 18:29 ••• Comdiv
Не поминайте всуе PL/1

2021/04/07 17:35 ••• :NONAME
Почему обречён язык Форт

2021/04/04 18:29 ••• kt
Переключатель

2021/04/04 18:04 ••• Александр Коновалов aka Маздайщик
Каким должен быть язык программирования?

2021/04/02 19:32 ••• Александр Коновалов aka Маздайщик
Циклы

2021/04/01 14:07 ••• Александр Коновалов aka Маздайщик
Условные операторы

2021/04/01 13:26 ••• Александр Коновалов aka Маздайщик
Комментарии автоматической генерации документации

2021/04/01 13:13 ••• Александр Коновалов aka Маздайщик
Длинные комментарии

2021/04/01 13:03 ••• Александр Коновалов aka Маздайщик
Некоторые «вкусности» Алгол-68

2021/04/01 12:15 ••• Александр Коновалов aka Маздайщик
Устарел ли текст как форма представления программы

2021/03/28 22:31 ••• Виталий Монастырский
Так ли нужны операции «&&», «||» и «^^»?

2021/03/28 13:39 ••• Виталий Монастырский
Бесплатный софт в мышеловке

2021/03/27 23:56 ••• Виталий Монастырский
Операции присвоения и проверки на равенство. Возможно ли одинаковое обозначение?