OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 23 Май, 2019 20:20

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




Начать новую тему Ответить на тему  [ Сообщений: 143 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
Автор Сообщение
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Пятница, 02 Октябрь, 2009 22:19 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1185
Geniepro писал(а):
Чем ошибки макросов так принципиально отличаются от ошибок в библиотеках?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Пятница, 02 Октябрь, 2009 23:38 

Зарегистрирован: Понедельник, 02 Июнь, 2008 19:35
Сообщения: 305
Построение своего языка для конкретной предметной области обычная вещь в математике. :mrgreen: А как это делать через макросы или процедуры - не есть ли это обычный изоморфизм? Главное естественность языка, а значит удобство и надежность.
Я только в одной предметной области сомневаюсь - иерархический подход и искусственный интеллект. Как мне представляется функциональный подход тут более адекватен в связи с тем, что программа должна постоянно модифицировать себя, а не просто копить данные в базу, но и создавать новые методы для их обработки. 8)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 04:39 

Зарегистрирован: Суббота, 12 Май, 2007 08:41
Сообщения: 102
Откуда: Беларусь, Минск
Geniepro писал(а):
Ну да, приходится дописывать "fun _ ->", ну так 8 символов дописать не так уж и трудно, зато не надо париться с закрывающими скобками... :wink:

Ну так да, собственно в данном случае всё сводится именно к 8 символам :) Ну и к естесственности. Я имел ввиду, что если в языке есть два средства, обоими из которых можно выполнить задачу, то правильнее будет использовать то из них, которое более естественно для данной задачи. Вот для and, например, гораздо удобнее было бы использовать ленивую функцию, чтобы её можно было передать как аргумент, однако в Лиспе ленивость не встроенная, поэтому при передаче, например, в reduce, приходится делать так:
Код:
(lambda (x y) (and x y))

Гораздо интереснее использовать макросы там, где функция не прокатит. Например, мне бы очень хотелось иметь возможность написать макрос, повторяющий функциональность deriving'а при объявлении типов в Haskell:
Код:
data Week = Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday deriving (Eq, Ord, Show)

(Помнится, в GHC собирались что-то с этим сделать, но получилось ли что-нибудь, не знаю).

Geniepro писал(а):
Разве Вы забыли, как R6RS расколол скимеров на три лагеря -- за новый стандарт (R6RS), за старый стандарт (R5RS), и за альтернативу новому стандарту (ER5RS)?

Забыл, каюсь. Но суть высказывания от этого не меняется: даже появление новых макросов не ведёт к лавинообразному увеличению сложности, напротив, благодаря единой форме они делают подавляющую часть конструкций однообразной, избавляя от необходимости соотносить новые фичи со всем списком старых. Базовые понятия то не изменяются, изменяется только способ их представления.


Илья Ермаков писал(а):
Теперь я поставлю задачу агитаторам за макросы. Хочу, чтобы макрос был не текстовым, а графическим. Прямо в программу вставлять визуальные схемы, по которым макропроцессор генерирует текст. Ваше решение? С Немерлями, Лиспами, чем угодно? Я в ББ - на раз.

То ли смеяться, то ли плакать. А попробуйте с помощью ББ фанарик сделать. А я вот с помощью паяльника легко.
Может всё-таки не будем мешать язык, пусть даже и с рантаймом, и конкретную программу? А то можно же и к автокадовцам сходить посмотреть на их визуальные схемы на их же АвтоЛиспе.
Вы рамки обсуждения то определите, а то у вас и язык, и компилятор, и фреймворк, и среда разработки, и ещё чёрт знает что. Я, вот, говорю про язык. И всё.

Algo писал(а):
Но считаю, что аналогия не корректная, рекурсия это действительно очень просто

Правда что ли? А по какому критерию вы меряли? Хотите по Колмогорову померяем сложность? А давайте, почему бы и нет. В качестве критерия возьмём длину описания, например. Вы во сколько слов сможете описать понятие рекурсии? Я понятие макросов в 2: "Макрос - это функция". Ну ладно, ответ не развёрнутый, можно трактовать как не полный, субъективный и бла бла бла. Обратимся на Википедию:
http://ru.wikipedia.org/wiki/%D0%9C%D0% ... 0%BE%D1%81
http://ru.wikipedia.org/wiki/%D0%A0%D0% ... 0%B8%D1%8F
Макрос - 10 слов, рекурсия - 36 слов (со всеми предлогами).
Ну да ладно, математическая сложность - это одно, а сложность для понимая - другое. Ну и как вы сможете объяснить не программисту, что такое рекурсия, когда её ни в природе, ни в человеческом обиходе вообще нет? Как по мне, так самое понятное объяснение рекурсии дано в анекдоте: "Чтобы понять рекурсию, нужно сначала понять рекурсию". (Хотя, строго говоря, следуя определению с Википедии, оно является неточным, т.к. не включает упоминания о необходимости описания конечных состояний объекта).
Если вы не владеете одним инструментом, это не значит, что он сложнее, чем другой, которым вы владеете.
Однако я не хотел бы спорить о сложности рекурсии и макросов, ибо оба понятия важны и обоими инструментами нужно уметь пользоваться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 10:12 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9119
Откуда: Россия, Орёл
Валерий Лаптев писал(а):
ББ-шники почему-то упорно сворачивают к текстовым макросам. А речь-то идет о вещах, подобных смешанным вычитслениям Ершова, что не есть текстовые макросы.


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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 10:15 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9119
Откуда: Россия, Орёл
Algo писал(а):
Валерий Лаптев писал(а):
...Нет в немерле встроенной операции AND - сейчас напишем. Если нужна. А если не нужна - и не будем писать. Обойдемся стандартной операцией языка match (сопоставление с образцом).

Посмотрел макросы Немерле - красиво. Когда-то, курсе эдак на 2-м, думал о чем-то подобном, разумеется, более примитивном. А потом эти думы потихоньку отпали.


Вот о том и речь - уровень студенческих игрушек, чеслово. :)

Я на втором курсе спроектировал и начинал делать язык WrySpace ("искривлённое пространство"), который должен был позволять делать любой синтаксис и произвольно их смешивать :)
Первоисточники идей - ЛИСП (увлекался этим зверем "в детсве" :) ) и Латех.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 11:33 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9119
Откуда: Россия, Орёл
kreol писал(а):
Ну так да, собственно в данном случае всё сводится именно к 8 символам :) Ну и к естесственности. Я имел ввиду, что если в языке есть два средства, обоими из которых можно выполнить задачу, то правильнее будет использовать то из них, которое более естественно для данной задачи.
]

Правильнее - в реальных боевых, а не на досуге - делать просто и надёжно, чтоб не ломалось. И бежать всяких изощрений, от праздности ума возникающих :)

kreol писал(а):
Вы рамки обсуждения то определите, а то у вас и язык, и компилятор, и фреймворк, и среда разработки, и ещё чёрт знает что. Я, вот, говорю про язык. И всё.


Про то и речь, что в языке не место тем вещам, которые неустоялись на много лет, неясны, могут делаться многими путями и т.д. Этому место среди разнообразной инструментальной "обвязки". Где-то выше я уже говорил про боязнь делать инструменты. Надо, чтобы такая возможность была, а боязни не было; тогда не будет комплексов-фобий по поводу "а вдруг мне когда понадобится, заложите-ка в язык сразу".


kreol писал(а):
Макрос - 10 слов, рекурсия - 36 слов (со всеми предлогами).
Ну да ладно, математическая сложность - это одно, а сложность для понимая - другое. Ну и как вы сможете объяснить не программисту, что такое рекурсия, когда её ни в природе, ни в человеческом обиходе вообще нет?
[/quote]

У, батенька... Эк Вы... Технический механизм сравниваем с разновидностью вообще абстрактных структур (и отражающей особенность подобную же структур из реальности).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 11:56 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
kreol писал(а):
Ну и как вы сможете объяснить не программисту, что такое рекурсия, когда её ни в природе, ни в человеческом обиходе вообще нет?


Как это нет?

Объявление на двери: "ключи от почтовых ящиков лежат в ваших почтовых ящиках".

Можно ещё встать между двумя зеркалами и увидеть рекурсию самого себя :)

Другой пример: GNU is Not Unix

Известное: "У попа была собака..."

Рецепт салата: огурец, помидор, салат...

P.S. Еще можно найти примеры рекурсии в произведениях Дали, Эшера...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 12:15 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3047
Откуда: Астрахань
Илья Ермаков писал(а):
Смешанные вычисления, во-первых, тема явно не для массового применения.
Во-вторых, эта тема достаточно серьёзна, чтобы обычные ИТ-шники (без настоящей физмат-образованности) могли с ней разбираться. Что к чему и как всё опять не запутать. Посему поощрять ажиотаж к таким вещам - это как гранату обезьянам... Пусть учатся сначала.

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

По поводу физмат-образованности - соглашусь. Насчет рядового трудяги-программера - тоже. Рядовые трудяги-программеры - это как шофера-трудяги: сегодня ездим на одной машине, завтра поедем на другой. Все одно: руль, колеса и правила дорожного движения.
Но тогда естественен вопрос: а обычный трудяга-программист какое образование должен иметь? Вернее, каков уровень образования программиста должен быть? Достаточно ли техникума-колледжа-бакалавриата или все же нужно университетское математическое?

Но Грэхем как раз не о рядовых трудягах говорит. Либо он выглядит как змей-искуситель, который рядовым, не способным понять и освоить его мысли, воздушные замки показывает и предлагает. ИМХО, все же он рассчитывает как минимум на лидеров команд.
И вот тут возникает противоречие. Даже если лидер выберет самый мощный из возможных языков, то большой вопрос: смогут ли освоить его рядовые программеры?

Грэхем, кстати, совсем не затрагивает технологический аспект производства ПО, а только внутреннюю кухню программиста. А программист часто не волен выбирать самый мощный язык из возможных. Ибо работает в реальных условиях в реальной конторе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 12:46 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
kreol писал(а):
Вот для and, например, гораздо удобнее было бы использовать ленивую функцию, чтобы её можно было передать как аргумент, однако в Лиспе ленивость не встроенная, поэтому при передаче, например, в reduce, приходится делать так:
Код:
(lambda (x y) (and x y))

При чём здесь ленивость? Вот F# -- вполне энергичный язык, однако and (&&) вполне передаётся как аргумент в какую-нибудь ФВП:
Код:
let bs = [ true; true; true; false; true ]
let f  = List.fold (&&) true bs
Может быть в лиспе сложность в том что and -- не функция, а спецформа с переменным числом параметров? Именно в том, что это макрос, а не функция?

kreol писал(а):
Гораздо интереснее использовать макросы там, где функция не прокатит. Например, мне бы очень хотелось иметь возможность написать макрос, повторяющий функциональность deriving'а при объявлении типов в Haskell:
Код:
data Week = Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday deriving (Eq, Ord, Show)
Для этого придётся воспроизвести систему классов типов Хаскелла.

kreol писал(а):
(Помнится, в GHC собирались что-то с этим сделать, но получилось ли что-нибудь, не знаю).
Не понял, что Вы имеете в виду?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 12:50 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Илья Ермаков писал(а):
Про то и речь, что в языке не место тем вещам, которые неустоялись на много лет, неясны, могут делаться многими путями и т.д. Этому место среди разнообразной инструментальной "обвязки". Где-то выше я уже говорил про боязнь делать инструменты. Надо, чтобы такая возможность была, а боязни не было; тогда не будет комплексов-фобий по поводу "а вдруг мне когда понадобится, заложите-ка в язык сразу".

Как у Вас так получается, что казалось бы правильные вещи говорите, а смысл неверный получается? Вроде как Вы против макросов, но на самом деле за них. Как так? :lol:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 16:37 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Trurl писал(а):
Geniepro писал(а):
Чем ошибки макросов так принципиально отличаются от ошибок в библиотеках?

Ну, например, компиляция может завершиться крахом, а может и не завершиться.
Крахи или зависания компиляторов вполне возможны и при компиляции языков без макросов, если система типов полна по тьюрингу, или просто в компиляторе ошибки есть...

И потом, чем раньше обнаружится ошибка, тем дешевле её исправление, не так ли?..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 16:54 

Зарегистрирован: Суббота, 12 Май, 2007 08:41
Сообщения: 102
Откуда: Беларусь, Минск
Geniepro писал(а):
Может быть в лиспе сложность в том что and -- не функция, а спецформа с переменным числом параметров? Именно в том, что это макрос, а не функция?

Именно так, за тем лишь исключением, что AND в Лиспе - не спецформа, а именно макрос. Как раз если бы and (опять же, в Лиспе) был спецформой, то вполне возможно, что его можно было бы передавать как аргумент в другие функции, и тот же fold/reduce можно было бы написать вообще красиво:
Код:
(apply and '(t t t nil t))

И получить ленивый вариант свёртки булевых значений (В Вашем варианте на F# функция пройдётся по всему списку, даже если самый первый элемент равен false.)
Но это всё так, лирическое отступление о том, где макросы "не рулят" :)

Geniepro писал(а):
Для этого придётся воспроизвести систему классов типов Хаскелла.

К чёрту подробности, главное - идея :) Ну хорошо, возьмите тот же пример с геттерами и сеттерами - там никаких преград для введения макросов нет, а простыми функциями код не сгенерируешь.

Geniepro писал(а):
Не понял, что Вы имеете в виду?

Ну сейчас deriving работает только для классов Eq, Ord, Enum, Ix, Bounded, Read и Show (если с расширениями, то ещё Data и Typeable). То ли показалось, то ли правда, но вроде была попытка создать возможность выводить декларацию инстансов для любых пользовательских классов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 17:13 

Зарегистрирован: Суббота, 12 Май, 2007 08:41
Сообщения: 102
Откуда: Беларусь, Минск
Иван Кузьмицкий писал(а):
Объявление на двери: "ключи от почтовых ящиков лежат в ваших почтовых ящиках".
Можно ещё встать между двумя зеркалами и увидеть рекурсию самого себя :)
Другой пример: GNU is Not Unix
Известное: "У попа была собака..."
Рецепт салата: огурец, помидор, салат...
P.S. Еще можно найти примеры рекурсии в произведениях Дали, Эшера...

Маразм (я о самом факте ключей от почтового ящика в почтовых ящиках, а не о примере, конечно же :))
Установление устойчивого состояния при обмене сигналом между двумя поверхностями.
Это вообще акроним, никакого отношения к рекурсии он не имеет.
Цикл чистой воды (вообще, любая линейная "рекурсия" в природе отражается циклом).
Тот же пример, что и "чтобы понять рекурсию...". В общем-то, правильный, но это именно высказывание, представить его в своей голове невозможно.
Ммм, а можно пример картины? Насколько я понимаю, речь идёт о вложенности. Ну тогда знаете, следуя такой логике беременная женщина тоже является примером рекурсии :))

Илья Ермаков писал(а):
И бежать всяких изощрений, от праздности ума возникающих

Ну да, выносить несколько действий в отдельную процедуру, а контекст записывать в ANYREC - это не изощрение, а воспользоваться простым макросом - это ну тааааак изощрённо, ну просто нереально сложно.
Об стенку горохом. Не вижу смысла дальше с Вами спорить.

upd. По поводу GNU's not Unix поправлюсь: акроним действительно называется рекурсивным. Но вряд ли вы будете объяснять студенту рекурсию на этом примере, не так ли? ;)
Смысл в том, что рекурсия является далеко не самым простым понятием, но все здесь понимают, насколько это мощный инструмент, и поэтому его нужно знать и уметь им пользоваться. Так почему тогда макросы воспринимаются в штыки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 19:10 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9119
Откуда: Россия, Орёл
kreol писал(а):
Ну хорошо, возьмите тот же пример с геттерами и сеттерами - там никаких преград для введения макросов нет, а простыми функциями код не сгенерируешь.

Что мне мешает написать на обычном языке генератор этих сеттеров и геттеров?
Нахрена метауровень, если на нём придётся в конце концов воспроизвести всё с нижнего уровня?
(Например, любой скриптовый язык рано или поздно тянется до уровня полноценного.)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 19:17 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9119
Откуда: Россия, Орёл
kreol писал(а):
Ну да, выносить несколько действий в отдельную процедуру, а контекст записывать в ANYREC - это не изощрение, а воспользоваться простым макросом - это ну тааааак изощрённо, ну просто нереально сложно.
Об стенку горохом. Не вижу смысла дальше с Вами спорить.


Одно дело, если я сделаю это сам; другое дело - использовать уже кем-то сделанный механизм. Где гарантия, что он сделан наилучшим возможным образом. У меня нет ни времени, ни контекста задач, ни желания продумывать от и до такую общую тему, каким мог бы быть единый механизм метакомпиляций и проверять, а правы они там в своих Немерлях или нет. А порождать зависимость от непроверенного лично (в концептуальном плане) инструментария наш коллектив, например, считает недопустимым. Это может показаться элитарным, штучный подход, но он, имхо, может быть оправданным гораздо чаще, чем кажется. По умолчанию - без веских причин для нарушения - на него и следует ориентироваться. Нужно привыкать отвечать за творения своих рук; а для этого надо быть уверенным во всём.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 22:08 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9119
Откуда: Россия, Орёл
В итоге:

речь не о самих макросах даже и их полезности-вредности.

А о том, что нихрена пока не обосновано, и у народа даже нет понимания, как следует разбирать любой вопрос о любой фиче; особенно таких тонких фичах, которые хочется зафигачить прямо вот непременно в язык.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 22:38 

Зарегистрирован: Суббота, 12 Май, 2007 08:41
Сообщения: 102
Откуда: Беларусь, Минск
Илья Ермаков писал(а):
Что мне мешает написать на обычном языке генератор этих сеттеров и геттеров?

Ну да, тривиальная задача: написать лексический и синтаксический анализатор, генератор геттеров и сеттеров, и запихнуть всё это в IDE, чтобы без среды разработки программист никуда не уехал. Отличный план. Только от кучи безинформационного кода в классе (который, вообще говоря, загромождает пространство и усложняет визуальное восприятие текста со всеми вытекающими) Вы так и не избавились.

Илья Ермаков писал(а):
но он, имхо, может быть оправданным гораздо чаще, чем кажется. По умолчанию - без веских причин для нарушения - на него и следует ориентироваться.

Вам не кажется, что здесь есть некоторая логическая нестыковка?

Илья Ермаков писал(а):
речь не о самих макросах даже и их полезности-вредности.

Вот и я говорю, Вы рамки обсуждения то определите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 22:45 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9119
Откуда: Россия, Орёл
kreol писал(а):
Илья Ермаков писал(а):
Что мне мешает написать на обычном языке генератор этих сеттеров и геттеров?

Ну да, тривиальная задача: написать лексический и синтаксический анализатор, генератор геттеров и сеттеров


Есть понятие интерфейса доступа к семантической информации. Впервые это - ASIS для Ады. Для Оберона пока не сделано, правда. Идея в том, что писать разбор для инструментальных задач не нужно; есть стандартный API компилятора для доступа к данным разбора, на который можно сажать все конкретные инструменты. Макропроцессоры, в частности.

А спроектировать идейно выверенную, пригодную для всех и "невредную" в смысле смелого толкания всем макросистему - тривиальная? Для начала разбираться нормально с возможными задачами и путями их решения и показывать, что нужны именно макросы и какие макросы нужны, и то никто не стал пока. Наклепали - и счастливые, меры нет.


Цитата:
Илья Ермаков писал(а):
но он, имхо, может быть оправданным гораздо чаще, чем кажется. По умолчанию - без веских причин для нарушения - на него и следует ориентироваться.

Вам не кажется, что здесь есть некоторая логическая нестыковка?


А жизнь, знаете, мало интересуется нашими стыковками-нестыковками, особенно с точки зрения формальной логики :) Опыт учит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Суббота, 03 Октябрь, 2009 23:51 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Илья Ермаков писал(а):
Одно дело, если я сделаю это сам; другое дело - использовать уже кем-то сделанный механизм. Где гарантия, что он сделан наилучшим возможным образом. У меня нет ни времени, ни контекста задач, ни желания продумывать от и до такую общую тему, каким мог бы быть единый механизм метакомпиляций и проверять, а правы они там в своих Немерлях или нет.

Забудем о Немерле -- он сделан двумя студентами и развивается несколькими энтузиастами...
Возьмём лиспы: Scheme (1975г) и Common Lisp(1984г). Вы считаете, что эти языки недостаточно проверены? Вы бы сделали систему макросов лучше, чем авторы этих языков?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О парадоксе Блаба и макросах
СообщениеДобавлено: Воскресенье, 04 Октябрь, 2009 00:23 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
kreol писал(а):
(В Вашем варианте на F# функция пройдётся по всему списку, даже если самый первый элемент равен false.)
Да, это тупо, Хаскелл в этом плане умнее...
kreol писал(а):
Ну сейчас deriving работает только для классов Eq, Ord, Enum, Ix, Bounded, Read и Show (если с расширениями, то ещё Data и Typeable). То ли показалось, то ли правда, но вроде была попытка создать возможность выводить декларацию инстансов для любых пользовательских классов.
Вот Вы о чём...
Боюсь, это не так-то просто сделать, неважно, макросами или нет.
А самое главное, вряд ли вообще возможно для любого пользовательского типа автоматически вывести вменяемый инстанс любого пользовательского класса. И нужно ли?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 143 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.

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


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB