Добрый день, Александр!

«Постепенно, по мере усложнения задач, возникли желания по оптимизации и 
оказалось, что проще вводить новые конструкции в язык, чем 
интеллектуализировать исполнение программы изнутри.»

Не понял мысль. Речь о каких новых конструкциях? Новые конструкции по сравнению 
с базисным Рефалом (спецификаторы Рефала-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 <mailto:gusev_aleksa...@mail.ru>  

Пятница, 29 ноября 2019, 15:51 +03:00 от Александр Коновалов 
a.v.konovalov87_AT_mail.ru <refal@botik.ru <mailto:refal@botik.ru> >:

 

вопрос читаемости — я считаю, что это вопрос привычки. Мне, например, трудно 
читать Рефал-2. Хотя я однажды читал исходник компилятора Василия Стеллецкого, 
уже к середине текст читался нормально. Так что вопрос привычки. Если прочтёте 
1000 строк кода Рефала-5, то тоже сможете некоторое время нормально его 
воспринимать.

А кто-то из коллег — это Василий Стеллецкий. Он тоже писал в рассылку, что 
текст на Рефале-5 он не читает, а расшифровывает.

 

From: Eisymont Leonid verger-lk_AT_yandex.ru <refal@botik.ru 
<mailto:refal@botik.ru> > 
Sent: Friday, November 29, 2019 1:20 PM
To: refal@botik.ru <mailto:refal@botik.ru> 
Subject: Re: Нужны ли вещественные числа в Рефале?

Про параллельность интересно, только нам запись типа Рефал-2 нужна, новые 
расширения явно неудачные, надуманные, в больших программах это "не прокатит", 
даже по примерам в письмах вижу, что программы не читаются. Кто-то из коллег, 
по-моему, также высказал такое мнение.

 

 

  • Re:... Boyko Bantchev boykobb_AT_gmail . com
  • Re:... Sergei M. Abramov
  • RE:... Александр Коновалов a . v . konovalov87_AT_mail . ru
  • Re:... Boyko Bantchev boykobb_AT_gmail . com
  • RE:... Александр Коновалов a . v . konovalov87_AT_mail . ru
  • Re:... Arkady Klimov arkady . klimov_AT_gmail . com
  • Re[... Александр Гусев gusev_aleksandr_AT_mail . ru
  • Re:... Boyko Bantchev boykobb_AT_gmail . com
  • Re[... Александр Гусев gusev_aleksandr_AT_mail . ru
  • RE:... Александр Коновалов a . v . konovalov87_AT_mail . ru
  • RE:... Александр Коновалов a . v . konovalov87_AT_mail . ru
  • Re[... Александр Гусев gusev_aleksandr_AT_mail . ru
  • Re:... Andrei Klimov andrei_AT_klimov . net
  • Re[... Александр Гусев gusev_aleksandr_AT_mail . ru
  • Re:... Sergei M. Abramov
  • RE:... Александр Коновалов a . v . konovalov87_AT_mail . ru
  • Re:... Sergei M. Abramov
  • Re:... Boyko Bantchev boykobb_AT_gmail . com
  • Re:... Eisymont Leonid verger-lk_AT_yandex . ru
  • RE:... Александр Коновалов a . v . konovalov87_AT_mail . ru
  • Re:... Eisymont Leonid verger-lk_AT_yandex . ru

Ответить