Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 2146 23-01-2007 04:03 | |
№ 2145 23-01-2007 04:02 | |
Ответ на »сообщение 2136« (info21)
___________________________
Во всяком случае, квантовая теория (дающая 13 значащих цифр согласия с экспериментом) поточнее будет, чем то словоблудие (спасибо за разрешение говорить прямым текстом), которое тут пропагандировалось в отношении состояний...
Ну я просто уязвлён в самое сердце!
- Во ВСЯКОМ ли случае?
- КАКИЕ 13 значащих цифр (да хоть 33!)?
- в КАКИХ экспериментах?
и, наконец,
- КАКИМ образом это имеет к теме дискуссии (о состояниях)?
ЗЫ Кстати, в "словоблудии" прямая цель увеличения уоличества значащих цифр не ставилась...
ЗЫЫ Интересно, а монахи до Кеплера тоже гордились увеличением количества значимых цифр после запятой через добавления "пары-другой" эпициклов?
№ 2144 23-01-2007 03:33 | |
Ответ на »сообщение 2120« (AVC)
___________________________
Ответ на »сообщение 2119« (Снегурочка)
___________________________
Но дело здесь даже не в компьютере как таковом.
Для многих задач управления (от противопожарной системы с двумя датчиками и газовым баллоном до сложных систем управления движением; операционная система тоже система управления в этом смысле) разумно представлять основные объекты как имеющие состояния.
И это в полной абстракции от компьютера, следуя только логике самой задачи.
Допустим, сработал один датчик. Перешли в состояние "Тревога". Послали сигнал на пульт дежурному.
Сработал второй -- перешли в состояние "Пожар". Караул!! Включаем мощную звуковую сигнализацию. Гражданам на эвакуацию -- 30 секунд.
Дальше состояние "Тушение". Подрываем пломбу у газового баллона, все кругом в дыму и газе (кошмар).
Алексей, когда говорят о состояних, это совсем не обязательно подразумевает ряд дискретных состояний, таких, что система может находиться только в одном из них и эволюция системы представляется как переход между этими состояниями.
Под состоянием можно понимать, как это понимается и в обыденном языке, набор характеристик объекта, более-менее полно описывающих его (в данный момент или например в данной точке пространства параметров, определяющих изменения (состояния) системы).
Например для баллистической ракеты это может быть положение, скорость, угловая скорость, угол тангажа и т.д.. Для предприятия (и программы управления производством) - это какой-то другой набор характеристик в данный момент.
Зная состояние ракеты в данный момент (плюс другие условия, в т.ч. точку, куда нужно попасть), мы можем определить, какое управляющее воздействие нужно в данный момент. И т.п.
№ 2143 23-01-2007 02:56 | |
Ответ на »сообщение 2140« (Илья Ермаков)
___________________________
Представление Франца так в полной мере никем кроме самого Франца в Juice реализовано не было.
В Juice было реализовано то, что и на Mac OS (дистрибутив Oberon System 3 для Mac OS). А Juice интересен как квинтэссенция решения для встраивания в браузеры, чем сейчас занимается Ральф Соммерер в Microsoft Research.
№ 2142 23-01-2007 02:52 | |
Ответ на »сообщение 2139« (Сергей Губанов)
___________________________
Пожалуй, в качестве такого FAQ очень подходит первая часть учебного пособия одобренного министерством образования и науки РФ Сергея Свердлова "Языки программирования и методы трансляции".
Хорошая книга. И горяченькая: вышла из типографии 26 декабря.
№ 2141 23-01-2007 02:34 | |
Ответ на »сообщение 2135« (Geniepro)
___________________________
Я не сторонник самобичевания... :о))
Можно и без самобичевания. Попробуем вернуться в русло конструктива. Статья Вирта, как ни странно, хороший повод это сделать. Итак, он очертил четыре парадигмы программирования: ИП, ООП, ФП и ЛП. Теперь оставим в покое его личную точку зрения и взглянем на эти парадигмы под углом задачи интеграции, о которой здесь шла уже речь.
1. Императивное программирование (ИП).
Очевидно, что ИП наиболее близко к современному фон-неймановскому железу и задачам дискретного моделирования. Там, где фундаментальное понятие состояния (state) предстает в своем первозданном и непорочном виде. ИП претендует на главенство в сфере системного программирования, включая сюда и задачи переносимого/мобильного кода. В частности, на основу для промежуточной кодогенерации (где сегодня доминирует Си) и динамической кодогенерации практически под любые архитектуры. Централизация данных и кода с возможностью четкой их децентрализации/локализации за счет концепции модуля.
Чистый представитель: Oberon
Ключевые сущности: тип, процедура, модуль
Математическая основа: конечные автоматы
2. Объектно-ориентированное программирование (ООП).
ООП претендует на оккупацию сферы прикладного программирования, особенно там, где задача решается в лоб: прямым отображением понятий реального мира их отношений на программный код, что очень полезно для быстрого макетирования. Приводит к децентрализации управления и данных и переноса центра тяжести на "контекстное" исполнение кода (с учетом иерархии классов).
Чистый представитель: Smalltalk
Ключевые сущности: класс
Математическая основа: ?
3. Функциональное программирование (ФП).
В большей степени подходит для задач прикладного, но не системного программирования, включая построение сложных систем, где функциональная декомпозиция выглядит органично. Позволяет упорядочить хаос "демократии ООП", когда состояния и наследование "размазываются" по программному коду. Тем самым, способствует повышению надежности ПО. Имеет строгую математическую основу.
Чистый представитель: Haskell
Ключевые сущности: функция
Математическая основа: лямбда-исчисление (Чёрч), комбинаторная логика
4. Логическое программирование (ЛП).
Наибольший выигрыш дает в задачах, задействующих аппарат логического вывода. В основе лежит механизм перебора вариантов с возвратом (бэктрекинг). Имеет понятную математическую основу.
Чистый представитель: Prolog
Ключевые сущности: клоз (Хорна)
Математическая основа: метод резолюций (Робинсон)
Ну а если эту картину мироздания слегка дополнить парадигмой родового программирования (generic programming), где важны "образ" и "подобие", а также задачами (динамической) трансформации программ, то здесь можно вспомнить и о бессмертном Лиспе.
№ 2140 23-01-2007 02:23 | |
Ответ на »сообщение 2138« (Geniepro)
___________________________
А почему бы хорошей идее и не воскреснуть... Большинство промежуточных представлений сегодня - это как раз-таки вариации на тему P-кода. Со всеми вытекающими. Представление Франца так в полной мере никем кроме самого Франца в Juice реализовано не было.
Доступна диссертация Франца, даже на русском языке. Правда, ссылку сейчас не могу дать, нужно гуглить. Можно попробовать поискать на вологодском сайте Свердлова.
№ 2139 23-01-2007 01:59 | |
Тут неоднократно предлагалось вывесить FAQ и отправлять туда всех новичков, чтобы бесконечно не отвечать на одни и те же вопросы. Пожалуй, в качестве такого FAQ очень подходит первая часть учебного пособия одобренного министерством образования и науки РФ Сергея Свердлова "Языки программирования и методы трансляции". Первая часть (~200 страниц) этой книги называется "Языки и эволюция технологий программирования". Для новичков - "как доктор прописал". Всё что бесконечно обсасывается в "священных войнах сишников против оберонов" там изложено как официально одобренный учебный материал для студентов ВУЗ-ов по направлению "Прикладная математика и информатика".
Языки C/C++/Java/C# заслужено раскритикованы в пух и прах, а оберон заслуженно представлен во всей своей красе.
http://www.piter.com/book/978546900378/
№ 2138 23-01-2007 01:50 | |
Ответ на »сообщение 2127« (Илья Ермаков)
___________________________
По поводу интеграции языков - это действительно гораздо лучшая идея, нежели их смешение.
Однако для таковой интеграции нужна соотв. платформа, инфраструктура.
На сегодняшний день есть .NET. Хорошо бы создать альтернативу на базе компонентных моделей Оберонов...
Вы как-то вспоминали о JIT-трансляции Франца.
Эта идея реально может воскреснуть или это просто размышления про то, что могло бы быть?
Я как-то пытался найти техническое описание формата AST, использованного Францем, но то ли это какой-то технический секрет, то ли что... Короче, не нашёл...
В принципе, если так подумать, то это было бы действительно хорошей возможностью интеграции в одном проекте кода на Обероне и, скажем, на том же Хаскелле... Гораздо лучше концептуально, чем пресловутый DLL-hell. И более современно, чем старинный виртовский p-code, который до сих пор используется под разными названиями..
№ 2137 23-01-2007 01:37 | |
Ответ на »сообщение 2124« (Снегурочка)
___________________________
Для многих задач управления (от противопожарной системы с двумя датчиками и газовым баллоном до сложных систем управления движением; операционная система тоже система управления в этом смысле) разумно представлять основные объекты как имеющие состояния.
Моделирование дискретных систем... Те же конечные автоматы.
Угумс, SWITCH-технология. Оператор goto тут просто рулит со страшной силой! :о))
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|