OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 679 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 34  След.
Автор Сообщение
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 11:29 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Сергей Прохоренко писал(а):
[Неужели таких тупых абитуриентов принимают в ВУЗы на программирование?
Все-таки тут не обязательно тупость.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 11:45 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Блин, чего-то я не понял. Вроде уже написал и отправил ответ, но он тут не появился.
Попробую еще раз.
Алексею Донскому.
1. Все ваши рассуждения о семантике верны. Но в этом случае нужно иметь соответствующий язык, в котором есть, например, только числа, а не целый набор машинно-ориентированных типов: целые, натуральные, дробные, да еще разных размеров и диапазонов (Оберон в этом случае не является исключением). Кстати, именно такой, максимально очищенный от машинных структур язык я и собираюсь зафигачить в семантический редактор - поскольку именно в первичном в обучении эффективность не важна. Но при переходе к машинной конкретике от вычислительной абстракции придется все-таки вернуться к разнице между x*x и pow(x,2) - для профессиональных программистов.
А пока ваш исполнитель напоминает сферического коня в вакууме, ибо абстрактного исполнителя в жизни (и на компьютере) не бывает.
2. И математика - чисто прикладная наука. Ибо нафига она нужна, кроме как площади и объемы вычислять (несколько утрирую, но суть - именно такая). И программирование - чисто абстрактная наука - смотрите ссылку Женипро на статью о проекциях Футамуры и следом - смешанные вычисления Ершова.
Поэтому все зависит от взгляда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 12:12 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Валерий Лаптев писал(а):
Но при переходе к машинной конкретике от вычислительной абстракции придется все-таки вернуться к разнице между x*x и pow(x,2) - для профессиональных программистов.
Естественно. Не ставьте только во главу угла, потому как частный технический вопрос, зависит от конкретного исполнителя.

Валерий Лаптев писал(а):
А пока ваш исполнитель напоминает сферического коня в вакууме, ибо абстрактного исполнителя в жизни (и на компьютере) не бывает.
Вообще-то я говорил как раз о конкретных исполнителях - процессорах и компиляторах.
А почему мне интересен данный форум - именно потому, что здесь обсуждаются вопросы о подходе к абстрактным исполнителям (один из кандидатов - Дракон).
Вопрос об абстрактном исполнителе и о переходе от абстрактного алгоритма к конкретике тех или иных процессоров я поднимал в теме Что же такое алгоритм?. Характерно, что удовлетворительного ответа пока не найдено.

Валерий Лаптев писал(а):
2. И математика - чисто прикладная наука. Ибо нафига она нужна, кроме как площади и объемы вычислять (несколько утрирую, но суть - именно такая). И программирование - чисто абстрактная наука - смотрите ссылку Женипро на статью о проекциях Футамуры и следом - смешанные вычисления Ершова.
Поэтому все зависит от взгляда.
Естественно! :)
Тем не менее, математика "более фундаментальна" тем, что даёт инструмент для построения адекватных моделей в подавляющем большинстве прикладных задач; информатика уже годится только для класса информационных задач, а программирование - в сугубо ограниченном сегменте таких задач.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 12:51 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Да, а 2*x тоже неправильно писать, ибо умножение суть дорогостоящая операция. Нужно писеть x+x. ;-)

PS. Чем то мне ваш спор напоминает спор в вот этой ветке: viewtopic.php?f=27&t=1671 Только там обсуждается эффективность функциональных языков и можно ли полагаться на их оптимизатор, а тут в точности то же, но про императивные языки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 13:08 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Дык, речь не об эффективности, а о том, чему стОит учить школьников, а чему - профессионалов.

В профессиональном же ракурсе вопрос следует сформулировать так - нужно ли учить ручной оптимизации (каковой являются все упомянутые примеры и паттерны программирования) или лучше учить правильному мышлению, а оптимизацию возложить на инструментальные средства (компилятор в т.ч.).

При этом, что такое эффективность кода, понимают все, а вот что такое эргономика (в т.ч. когнитивная) - увы :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 13:17 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Я да, согласен что надо учить алгоритмике отдельно а методам оптимизации (в т.ч. под конкретного исполнителя) отдельно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 13:22 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Ага, вот именно.

Добавлю только, что x*x vs. pow(x,2) к алгоритмике имеет весьма отдалённое отношение. Точнее говоря, вообще никакого :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 15:16 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Короче, к консенсусу пришли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 22:47 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Честно говоря, задача оптимизации в той форме, в которой она здесь обсуждалась, мне кажется вообще не заслуживающей внимания. Эффект от такой оптимизации в масштабе крупной программной системы будет незаметен.

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

Более того, задача оптимизации важна только для наиболее долгих и критичных алгоритмов в системах жесткого реального времени. А в остальных 99% случаев (с учетом роста вычислительных мощностей, развития облачных вычислений и т.п.) она вообще не имеет смысла.

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

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

Еще одна проблема - научить писать такие программы, с которыми легко могли бы обращаться пользователи - непрограммисты, адаптируя их под себя. Такие программы пока можно пересчитать по пальцам одной руки. В остальных случаях пользователи вынуждены долго ждать, пока программисты им "передвинут запятую". Иногда инструментарий для этого есть (например, Business Intelligence), но доступ к нему закрыт лицензиями и астрономическими ценами.

Общий вывод: инструментарий должен прежде всего позволять быстро и безошибочно создавать правильную архитектуру программного продукта и легко ее модифицировать (в т.ч. силами пользователей - непрограммистов), а не выискивать блох типа x*x vs. pow(x,2). В крайнем случае для этого всегда можно найти "оптимизатора", которых миллион на всех программистских форумах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 07:50 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Ага.
Только не "выискивать блох", а правильно сформировать направления в обучении. И акценты расставить.

Для топика - "семантический редактор" вообще должен бы оперировать высокоуровневыми конструкциями. Даже абстракция цикла на начальном этапе решения задачи есть низкоуровневая техническая мелочь.

Типовой учебный пример. Дано: трансцендентное уравнение. Задача: найти корни. Используемая семантика: выбор метода, преобразование уравнения. Всё!
Сугубо учебный пример: реализация метода. Семантика: итерации, вычисление формулы, оценка точности.
Ну и т.д., вплоть до ассемблера и маш.кодов :) , если кому приспичит с учебной целью...

Кстати, вот. Написал про выбор метода... А зачем? Что, мы итерации на линейке логарифмической считать будем? Какой смысл сегодня в использовании, скажем, метода Ньютона? Простого половинного деления хватит для 99.99% практических случаев! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 09:15 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Сергей Прохоренко писал(а):
... задача оптимизации в той форме, в которой она здесь обсуждалась, мне кажется вообще не заслуживающей внимания. Эффект от такой оптимизации в масштабе крупной программной системы будет незаметен.

Гораздо больше для ускорения работы программы может дать <тщательное структурирование программной системы "в большом">.

Более того, задача оптимизации важна только для наиболее долгих и критичных алгоритмов ... А в остальных 99% случаев (с учетом роста вычислительных мощностей ...) она вообще не имеет смысла.

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

Золотые слова.
Работаем ровно в этом направлении.

Беда в том, что комбинаторные игры с мелкой оптимизацией легко затягивают (1й умотип), и чтобы сопротивляться, нужна некая ментальная дисциплина, достигаемая только (если говорить о массовом масштабе) достаточно длительным правильным твердым обучением.
А для возникновения *системы* такого обучения требуется либо много времени (поколения), либо жесткое внедрение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 16:40 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Возникла мысль, и я ее думаю: повышение надежности разрабатываемых систем, в первую очередь, упирается в надежность инструмента, на котором пишется система, и в специальную организацию кода. Например, локализация аварийных ситуаций только тем модулем, где возникла, и разруливание этой ситуации там же на месте.
Надежность инструмента можно понимать в двух ипостасях:
1. инструмент диктует жесткую дисциплину организации кода.
2. инструмент выполняет тотальные проверки всего и при компиляции и при выполнении.
И идет эффективность лесом.
Ы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 17:04 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
И кстати, давно хотел задать вопрос:
если все же индекс вылетает за границу массива, то АВОСТ неизбежен?
И нет никаких средств оставить прогу на плаву?
А как же с надежностью?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 19:33 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
И кстати, давно хотел задать вопрос:
если все же индекс вылетает за границу массива, то АВОСТ неизбежен?
И нет никаких средств оставить прогу на плаву?
А как же с надежностью?

Ну, ББ же остается на плаву.

Замените себя Искусственным Интеллектом -- и вперед :)

АВОСТ неизбежен. Это такая минимальная, но крайне при отладке etc. полезная мера.
Способ передать управление Искусственному Интеллекту.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 19:34 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
И идет эффективность лесом.
Нет уж.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 20:52 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Валерий Лаптев писал(а):
Возникла мысль, и я ее думаю: повышение надежности разрабатываемых систем, в первую очередь, упирается в надежность инструмента, на котором пишется система, и в специальную организацию кода. Например, локализация аварийных ситуаций только тем модулем, где возникла, и разруливание этой ситуации там же на месте.


Не всегда. Иногда должна вмешаться "центральная нервная система, эндокринная система или имунная система", а иногда поможет только напарник или "реаниматолог", то есть модуль-контролер. Мне кажется, что аналогии с живыми организмами, чья отказоустойчивость изумляет, здесь очень уместна. Вообще же отказоустойчивость - это целая наука: http://en.wikipedia.org/wiki/Fault-tolerant_system

Валерий Лаптев писал(а):
Надежность инструмента можно понимать в двух ипостасях:
1. инструмент диктует жесткую дисциплину организации кода.


Это идеал!

Валерий Лаптев писал(а):
2. инструмент выполняет тотальные проверки всего и при компиляции и при выполнении.
И идет эффективность лесом.
Ы?


При помодульной отладке время компиляции никого уже особо не волнует.

Что касается проверок при выполнении, то с этим придется смириться. Программист ОБЯЗАН предусмотреть и, если необходимо, указать действия системы во всех исключительных ситуациях, возникающих при ошибках времени исполнения (возможный выход вводимой переменной за пределы допустимого диапазона значений, недопустимое отклонение расчетной величины от контрольного значения, противоречивые данные, отсутствие необходимых данных и т.п.), иначе компилятор не должен принимать исходный код. Для этого инструментарий должен показать программисту все возможные места возникновения ошибок времени исполнения. Кроме того, инструментарий должен содержать механизмы разруливания исключительных ситуаций "по умолчанию" и, может быть, какие-то сценарии, из которых программист выберет один. Критичная система может содержать механизмы самообучения в процессе тестирования и генерить тестовые данные, но вряд ли это удастся как-то встроить в инструментарий.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 21:59 
Модератор
Аватара пользователя

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


Вообще-то, они всегда назывались "проекции Ершова-Футамуры".
Народ своих книг старых не читает, а всасывает всё как откровения понятно откуда...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 22:15 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Alexey_Donskoy писал(а):
Повторяю, что семантикой задачи диктуется "икс в квадрате". Все остальные измышления есть синтаксис конкретного исполнителя. Учить синтаксису конкретного исполнителя необходимо в специальном профессиональном учебном заведении. В школе надо учить информатике, и в её рамках - выбору адекватного метода решения и инструмента, а вовсе не разнице между x*x и x^2.


Так-то оно так...

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 22:41 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Илья Ермаков писал(а):
Geniepro писал(а):
Вообще-то, они всегда назывались "проекции Ершова-Футамуры".
Народ своих книг старых не читает, а всасывает всё как откровения понятно откуда...
Вот так вот хреново у нас с пропагандой своих открытий. Делать умеем, а делиться ими -- нет.
"А потом вопим -- караул! украли!" :lol:

ЗЫ. Даже гугл -- и тот не знает о "проекциях Ершова-Футамуры".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 05 Июль, 2009 22:46 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Илья Ермаков писал(а):
И привычка видеть, как проецируется операция верхнего слоя в операцию нижнего быть должна.
"И это пройдёт!" :) С развитием правильных технологий и инструментов. Потом появится новое поколение "врачей, не умеющих измерить давление, когда сломается электронный тонометр".


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

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


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

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


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

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