Добрый день, Александр! Первый вопрос - аналогия борьбы процессорных архитектур CISC и RISC в своё время. Мне не полюбились как раз условия и блоки Рефала-5. Возможно, я в них не разобрался нужным образом. Но я достаточно работал в отраслях, где времени на поиск ошибки в очень большом коде системы - минуты. И если над каждой строкой нужно задумываться, когда нужно срочно исправить ошибку - это приводит к катастрофическим последствиям. Поэтому я за предельную простоту.
>Воскресенье, 1 декабря 2019, 14:37 +03:00 от Александр Коновалов >a.v.konovalov87_AT_mail.ru <refal@botik.ru>: > >Добрый день, Александр! >«Постепенно, по мере усложнения задач, возникли желания по оптимизации и >оказалось, что проще вводить новые конструкции в язык, чем >интеллектуализировать исполнение программы изнутри.» >Не понял мысль. Речь о каких новых конструкциях? Новые конструкции по >сравнению с базисным Рефалом (спецификаторы Рефала-2, условия и блоки >Рефала-5, конструкции с поэтичными названиями Рефала Плюс, действия Рефала-6 и >т.д.) ИМХО призваны повысить ясность программ, нежели оптимизировать >выполнение. Можно программировать и без них, только программы будут более >многословными, придётся писать много однообразного ( boilerplate ) кода, за >которым идея будет менее заметна. Всё развивается. Базовый Рефал - тоже очень простой язык. Но достаточно гибкий, чтобы усложнять его сколь угодно. > >«Если ещё немного усложнить язык — получится Хаскелл, зачем тогда Рефал?» >Для начала, Хаскель-98 сравнительно простой язык. Это уже потом в расширениях >языка наворотили всякие GADT ’ы и прочее ботанство. А во-вторых, Хаскель не >получится — о чём написал Бойко в отдельном письме. > Возможно, это лучший подход, но интересно самому разобраться, а вдруг, можно сделать совсем не так? А вообще, я имел ввиду тут не работу со списком, а само отождествление. Кстати, мысль о байткоде у меня появилась и ушла, но она мне нравится - это облегчает алгоритм отождествления. Вернусь к этой теме, спасибо. >«Что могут сказать разработчики версий компилятора по поводу внутренней >простоты реализации?» >Внутренняя простота реализации — это классическая плоская списковая реализация >+ байткод Романенко. Другие реализации будут сложнее. > >«У меня интерпретатор не выходит пока что таким красивым, как хотелось бы. >Сложнее, чем внешняя концепция языка. Интересно, это мои недоработки или >действительно задача сложнее, чем кажется на первый взгляд?» >Сопоставление с образцом (открытые переменные) сложнее, чем кажется на первый >взгляд. Если брать ограниченный ( strict ) Рефал, то там сопоставление с >образцом простое. Но и выразительные возможности у таких образцов беднее. > В сентябре над этим Андрей Климов смеялся: "почему каждых хочет написать свой компилятор вместо того, чтобы объединить усилия?" Но я хочу, чтобы на нём решались реальные задачи, а не только сравнивались индексы производительности. >«У меня интерпретатор не выходит пока что таким красивым, как хотелось бы.» >Рефал — это не язык, на котором программируют. Это язык, для которого пишут >реализации 😀 . Потому что это интересно. Рефал — это вызов «напиши для меня >компилятор». > >С уважением, >Александр Коновалов > > >From: Александр Гусев gusev_aleksandr_AT_mail.ru [mailto:refal@botik.ru] >Sent: Friday, November 29, 2019 4:57 PM >To: refal@botik.ru >Subject: Нужна ли "Ленинская простота" в Рефале? > > >Добрый день, коллеги! > >Есть два вопроса по поводу простоты. > >1. Я думаю, что сила Рефала - в изначальной краткости и логичности элементов >языка. Оптимизация была спрятана в компилятор. Это позволяет знакомиться с >языком и с первых же дней программировать без ограничений по сложности >используемых конструкций. Постепенно, по мере усложнения задач, возникли >желания по оптимизации и оказалось, что проще вводить новые конструкции в >язык, чем интеллектуализировать исполнение программы изнутри. Это понятно, но >не всегда это полезно. Если ещё немного усложнить язык - получится Хаскелл, >зачем тогда Рефал? > >2. Что могут сказать разработчики версий компилятора по поводу внутренней >простоты реализации? У меня интерпретатор не выходит пока что таким красивым, >как хотелось бы. Сложнее, чем внешняя концепция языка. Интересно, это мои >недоработки или действительно задача сложнее, чем кажется на первый взгляд? > > >С уважением, >Александр Гусев >gusev_aleksa...@mail.ru >>Пятница, 29 ноября 2019, 15:51 +03:00 от Александр Коновалов >>a.v.konovalov87_AT_mail.ru < refal@botik.ru >: >>вопрос читаемости — я считаю, что это вопрос привычки. Мне, например, >>трудно читать Рефал-2. Хотя я однажды читал исходник компилятора Василия >>Стеллецкого, уже к середине текст читался нормально. Так что вопрос привычки. >>Если прочтёте 1000 строк кода Рефала-5, то тоже сможете некоторое время >>нормально его воспринимать. >>А кто-то из коллег — это Василий Стеллецкий. Он тоже писал в рассылку, что >>текст на Рефале-5 он не читает, а расшифровывает. >>From: Eisymont Leonid verger-lk_AT_yandex.ru < refal@botik.ru > >>Sent: Friday, November 29, 2019 1:20 PM >>To: refal@botik.ru >>Subjec t: Re : Нужны ли вещественные числа в Рефале? >>Про параллельность интересно, только нам запись типа Рефал-2 нужна, новые >>расширения явно неудачные, надуманные, в больших программах это "не >>прокатит", даже по примерам в письмах вижу, что программы не читаются. Кто-то >>из коллег, по-моему, также высказал такое мнение. С уважением, Александр Гусев gusev_aleksa...@mail.ru