Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 25 июн 2018, 11:36

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Почему в Обероне нет макросов
СообщениеДобавлено: 05 июл 2014, 19:10 
Не в сети
Аватара пользователя

Сообщения: 885
Откуда: Днепропетровская обл.
Сегодня пробежало по рассылке ETH:
Paul Reed писал(а):
Dear z.

>> But it seems to me that even oberon language is not perfect. Sometimes I
>> am asking myself why prof. Wirth did not implement macros in his language?
...
>> If you have in your program some repeating code like "IF i < 30 THEN n :=
>> n + 10 END" and this code repeats many times you can obviously...

Actually, it seems here you are making a case for procedure inlining,
rather than macros.

It is worth reading Prof. Wirth's books carefully to discern his views on
language design, "optimisation" (of which the above is one), and
extensibility, and learn from his pragmatic experience. In particular,
Programming in Oberon and Compiler Construction are available as PDFs on
his website and are a very rewarding cover-to-cover read in comparison to
many much thicker tomes. I think many of your questions may be best
answered this way.

I remember reading Compiler construction and thinking that the following
passage (in section 5.1 in
http://www.inf.ethz.ch/personal/wirth/CompilerConstruction/CompilerConstruction1.pdf)
seems to make the case against macros and operator overloading:

"Ultimately, the basic idea behind every language is that it should serve
as a means for communication. This means that partners must use and
understand the same language. Promoting the ease by which a language can
be modified and extended may therefore be rather counterproductive."

I have extensive experience in commercial situations trying to maintain
code that other people have written (in a variety of languages), and I
definitely concur with the above observation!

Since I read it, I've noticed that I've certainly not been too bothered
about macros because the times they could be used to good effect are few,
compared with the enormous possibilities for abuse (and the increase in
complexity of the tools and environment). Nowadays, I am happy to accept
less fancy features in my tools because there's less stuff to "get in my
way".

Hope that helps,
Paul

Машинный перевод для тех, кто не дружит с английским:
Пол Рид писал(а):
Уважаемый г.

> Но мне кажется, что даже Оберон язык не является совершенным. Иногда я
> Спрашиваю себя, почему проф. Вирт не реализовали макросы на его языке?
...
>> Если у вас есть в вашей программе некоторый повторяющийся код вроде "если я <30 Тогда N: =
>> П + 10 END "и этот код повторяется много раз вы, очевидно, ...

На самом деле, кажется, здесь вы делаете дело на процедуры встраивания,
, а не макросов.

Стоит внимательно читать книги профессора Вирта различить свои взгляды на
дизайн язык, "оптимизация" (из которых выше является одним), и
расширяемость, и узнать из его прагматической опыта. В частности,
Программирование в Oberon и Compiler Construction доступны как PDF-файлов на
его сайт и очень полезный обложка для чтения по сравнению с
многие гораздо более толстые фолианты. Я думаю, что многие ваши вопросы может быть лучше
ответил на этот путь.

Я помню, как читал строительство компилятора и думая, что следующее
проезд (в разделе 5.1 в
http://www.inf.ethz.ch/personal/wirth/CompilerConstruction/CompilerConstruction1.pdf)
, кажется, делает дело против макросов и перегрузки операторов:

"В конечном счете, основная идея любого языка является то, что она должна служить
в качестве средства для связи. Это означает, что партнеры должны использовать и
понять на одном языке. Содействие легкость, с которой язык может
Поэтому быть изменен и расширен может быть довольно контрпродуктивно ".

У меня есть большой опыт работы в коммерческих ситуациях пытаются поддерживать
Код, что другие люди написали (в разных языках), и я
определенно согласны с выше наблюдения!

Так как я прочитал его, я заметил, что я, конечно, не слишком обеспокоен
о макросах, потому что раз они могут быть использованы для хорошего эффекта мало,
по сравнению с огромными возможностями для злоупотреблений (и увеличением
Сложность инструменты и среды). В настоящее время, я рад принять
меньше фантазии особенности в моих инструментов, потому что там меньше материала, чтобы "получить в моем
путь ".

Надежда, что помогает,
Пол


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Почему в Обероне нет макросов
СообщениеДобавлено: 06 июл 2014, 00:53 
Не в сети
Аватара пользователя

Сообщения: 885
Откуда: Днепропетровская обл.
Jörg Straube писал(а):
Hi z.

If you really want that use macro expansion (although not recommended due to possible pifalls), use the C preprocessor on an Oberon file. Let's assume you have a Unix box with C and Oberon installed, you can run the C preprocessor directly without calling the C compiler afterwards by entering

cpp test.mod

br
Jörg


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Почему в Обероне нет макросов
СообщениеДобавлено: 05 апр 2018, 17:26 
Не в сети

Сообщения: 177
Сишный препроцессор -- не лучший выбор, есть куча куда более продвинутых макропроцессоров.
Забавна история языка Ratfor (Rational Fortran) -- это язык, сделанный как препроцессор для фортрана. На входе cи-подобный язык, на выходе -- фортран.

Но настоящие макросы -- это то, что имеется в таких языка, как Лисп, Схема, Немерл, или даже Шаблонный Хаскелл. Это так называемое квазицитирование, позволяющее создавать синтаксис, более подходящий для какой-либо предметной области, чем просто библиотека процедур. Это и есть метапрограммирование, а вовсе не та работа с метаинформацией о записях, RTTI фактически, которое наши оберонщики выдают за метапрограммирование.


Последний раз редактировалось geniepro 06 апр 2018, 04:15, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Почему в Обероне нет макросов
СообщениеДобавлено: 05 апр 2018, 18:41 
Не в сети

Сообщения: 73
Метапрограммирование многогранно - одно не исключает другого.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Почему в Обероне нет макросов
СообщениеДобавлено: 08 апр 2018, 21:10 
Не в сети
Администратор
Аватара пользователя

Сообщения: 56
Вот Babel наверное ближе всего к этому.
http://zinnamturm.eu/downloadsAC.htm#Babel


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Тех.поддержка phpBB