Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  23:32[Войти] | [Зарегистрироваться]
Обсуждение темы:
Оберон-технология: особенности и перспективы


Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение. 

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 6256 сообщений

Добавить свое сообщение

Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 2586—2577 | 2576—2567 | 2566—2557 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 369


№ 2576   05-02-2007 06:25 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2566« (Илья Ермаков)
___________________________

Для Оберонов необходим единый стандарт на библиотеку метапрограммирования - это станет основой для любого взаимодействия, в том числе распределенного.

Еще один штрих. Семейство Оберонов достаточно разнообразно, но при этом "покрывает" большой пласт императивного программирования, что повышает ценность всего комплекса этих языков. Если выставить некие ориентиры, то получится что-то вроде
* Оберон - Си
* Оберон-2 - Objective С
* Компонентный Паскаль - Java
* Active Oberon - Limbo
* Zonnon - Modula-3 (с прицелом на .NET).

Задача унификации работы на этих языках исходя из микроядра (Оберон) и базовой инструментальной платформы КП/BlackBox имеет некое (хоть отдаленное, зато конкретное) приближение к идее А.П.Ершова о создании лексикона программирования:
* "Предварительные соображения о лексиконе программирования (1983)
http://www.europrog.ru/classics/ae1983.pdf
* "Язык или лексикон" (1983)
http://www.europrog.ru/classics/ae1983b.pdf



№ 2575   05-02-2007 05:58 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2573« (Руслан Богатырев)
___________________________

Некоторые размышления о языке "золотой середины" я изложил в статье "Оберон как эсперанто программирования" http://www.computer-museum.ru/histsoft/ober_esp.htm и http://www.oberon2005.ru/paper/obe_esp.pdf

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


№ 2574   05-02-2007 05:48 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2571« (AVC)
___________________________

Оберон-мышление, Оберон-философия - это нечто большее, чем Оберон-технологии. А потому - более ценное.

Понимаю, что вопрос трудный.
Но не могли бы Вы немного подробнее на него ответить?


Постараюсь это сделать в ближайшие дни.


№ 2573   05-02-2007 05:45 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2572« (AVC)
___________________________

Let's consider now why C is a great language.

Вы зрите в корень. Для существующих компьютеров нужен идеальный компромисс между уровнем детализации (близким к машинной архитектуре) и уровнем абстрагирования (близким программисту). Эдакая золотая середина.

Я бы выделил здесь две пары языков: Си (Денниса Ритчи) и Оберон (Никлауса Вирта), а также Forth (Чарльза Мура) и Occam (компании Inmos).

Си ближе к железу, чем Оберон, в нем низкоуровневые вещи размазаны по языку. В Обероне они по возможности выделены в SYSTEM. Плюс в Обероне есть две фундаментальные по своей простоте и композиционной выразительности вещи - модули и расширяемые записи, которые Си может имитировать. Си занял уникальное место стандарта де-факто в качестве промежуточного языка для кросс-компиляции и работе на разных платформах во многом благодаря своей близости "золотой середине". Деннис Ритчи очень хорошо относится к языкам Вирта, включая Паскаль, Модулу-2 и Оберон. Вирт же прилюдно не раз выражал скепсис по отношению к Си, но кое-что оттуда перенял (самый простой пример - нумерация массивов от нуля, которую он сначала критиковал, а потом "зашил" в Оберон).

Что касается Форта, то язык ориентирован на чисто стековые архитектуры и слегка уходит от программиста в сторону машины (по нотации). Occam(-2) создавался при участии и консультациях Хоара, ориентирован на хоаровский формализм Communicating Sequential Processes (CSP) и заточен под транспьютеры. Что является тоже некоторым уходом в сторону, но уже от традиционного железа.

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

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


№ 2572   05-02-2007 04:32 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2571« (AVC)
___________________________

Например, здесь

Let's consider now why C is a great language. It is commonly believed that C is a hack which was successful because Unix was written in it. I disagree. Over a long period of time computer architectures evolved, not because of some clever people figuring how to evolve architectures---as a matter of fact, clever people were pushing tagged architectures during that period of time---but because of the demands of different programmers to solve real problems. Computers that were able to deal just with numbers evolved into computers with byte-addressable memory, flat address spaces, and pointers. This was a natural evolution reflecting the growing set of problems that people were solving. C, reflecting the genius of Dennis Ritchie, provided a minimal model of the computer that had evolved over 30 years. C was not a quick hack. As computers evolved to handle all kinds of problems, C, being the minimal model of such a computer, became a very powerful language to solve all kinds of problems in different domains very effectively. This is the secret of C's portability: it is the best representation of an abstract computer that we have. Of course, the abstraction is done over the set of real computers, not some imaginary computational devices. Moreover, people could understand the machine model behind C. It is much easier for an average engineer to understand the machine model behind C than the machine model behind Ada or even Scheme. C succeeded because it was doing the right thing, not because of AT&T promoting it or Unix being written with it.
 AVC


№ 2571   05-02-2007 04:26 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2550« (Руслан Богатырев)
___________________________

Коротко ответить не получится. Но мышление - это не перечисление нескольких принципов или фич. "Материя" более высокого порядка. Здесь придется затронуть вопросы культуры программирования и субкультуры языков, противостояния американской и европейской культур и причин "порабощения" европейской культуры. Оберон-мышление, Оберон-философия - это нечто большее, чем Оберон-технологии. А потому - более ценное.

Понимаю, что вопрос трудный.
Но не могли бы Вы немного подробнее на него ответить?
Разумеется, когда (и если) представится возможность.

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

Т.е. в каком-то смысле это конкурент "Си-машины", которой Алекс Степанов дал сходную высокую оценку (сейчас точно не помню, в какой статье)?
 AVC


№ 2570   05-02-2007 04:07 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2521« (Geniepro)
___________________________

Вечный вопрос - есть ли в программировании место искусству?

Можно ли позволить программам быть произведениями искусства, писать стихи на языке программирования?
...
Программы на Хаскелле подобны хайку - несколько строк, а сколько в них глубинного, потаённого смысла, который может обсуждаться веками...
Этим он (Хаскелл) и отличается от тяжеловесного, грубоватого Оберона, и от корявого С++...



"Хайку, Япония, Восток дело тонкое". Ну просто не могу удержаться:

http://oko-planet.spb.ru/?open&h=1&p=5_3&type=viewmes&site=000286F2

Японское Агентство по космическим исследованиям предложило отказаться от посылки автоматических станций для исследования поверхности и происхождения Луны.
...
Ранее Япония отказалась от запуска ракеты с датчиками на Марс.


Кому хайку сочинять, а кому в космос летать.





№ 2569   05-02-2007 03:38 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2517« (Илья Ермаков)
___________________________

Хоар вроде бы сейчас занимается как раз-таки ортогональным к ФП подходом - развитием методов автоверификации и доказательства императивного кода. На мой взгляд - для практики самый перспективный подход. И оберонщики здесь тоже на месте не стоят, хе-хе ;)

Автоверификация очень не любит Halting problem. Кроме того, никто не избавляет программиста от необходимости задавать исходные спецификации для проведения верификации. Далее, насколько я знаю состояние дел в области ATP, им требуется "помощь" в ходе вывода. Соответственно, скорее всего от программиста потребуется также понимание утверждений, сгенерированных верификатором автоматически.  Математический аппарат, столь красивый в случае простых программ, семантика которых укладывается в рамки преобразователей предикатов Дейкстры обозримого размера, становится, как бы это выразиться поприличнее, несколько замысловатым в случае доказательства свойств программ, оперирующих над структурами данных типа орграфов произвольной связности. Интересно, что будет проще для "обычного" программиста --- овладение "чистым" лямбда-исчислением и индуктивными  рассуждениями для доказательства свойств Ф-программ или темпоральными логиками и "эффектами" для суждений об императивных программах?

Информация к размышлению. Уже достаточно давно была создана система программирования на языке Scheme, которая называлась VLISP. Ее корректность была верифицирована с точностью (пишу по памяти, могу ошибаться) до соответствия исполнителя его формальной спецификации. Кроме того, стандарт языка Scheme (R5RS) включает формальное определение его семантики. Среди известных мне языков это единственый случай такого серьезного отношения к верифицируемости (специально ориентированные на верификацию языки типа Gypsy не в счет).


№ 2568   05-02-2007 03:23 Ответить на это сообщение Ответить на это сообщение с цитированием
>>> лезть ко всем с единым аршином

Видимо, долгое проживание в отрыве от корней сказывается на менталитете.
В России говорится "на свой аршин" - у каждого разный - длина руки человека.
А единый аршин - это прогрессивная идея метрической системы.
Я ж и говорю - конкретика хромает.


№ 2567   05-02-2007 03:15 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2566« (Илья Ермаков)
___________________________

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

Согласен. Вот еще немного информации к размышлению в этом направлении.

Давайте попробуем вернуться к триаде Ершова: синтезирующее, сборочное и конкретизирующее программирование. Возьмем за отправную точку классический Оберон (уровень сложности - Си). В нем активно присутствуют средства синтезирующего программирования, есть основа для сборочного (модули) и конкретизирующего программирования (расширение типа, сохранение псевдомодуля SYSTEM), а также (неявно) средства метапрограммирования.

Дальше начинается ветвление (назовем условно - ветвь "Мессенбек/Пфистер" и линия "Гуткнехт").

Язык Оберон-2 (Мессенбек) есть шаг в сторону конкретизирующего программирования (type-bound procedures, read-only export, динамические массивы, WITH, FOR), явная автоматическая сборка мусора, явная метаинформация (метапрограммирование), явная динамическая загрузка модулей  -- в Обероне это неявно, в описании языка не представлено. Уровень сложности: классическая Modula-2 (не ISO).

Язык Компонентный Паскаль (Пфистер, Шиперски) есть дальнейший шаг от Оберона-2 в сторону сборочного (в данном случае framework-компонентного) и конкретизирующего программирования (модификаторы записей, более явное ООП, приближение к Java-модели, в том числе и по базовым типам). Уровень сложности: меньше, чем Java, C#.

Active Oberon (Гуткнехт) берет за точку отсчета классический Оберон, точнее, Object Oberon (язык Мессенбека, из которого потом получился Оберон-2). Active Oberon ввел ссылки на анонимные record-типы (POINTER TO RECORD), не отменяя реализацию ООП средствами классического Оберона. Но двинулся дальше в сторону сборочного (расширяемые (refined) контракты-интерфейсы -- DEFINITION) и конкретизирующего программирования (явное слово OBJECT, разделение на процедуры и методы, делегатные процедурные типы), нетрассируемые указатели (без контроля со стороны сборщика мусора), а главное – активные объекты (объекты-процессы, возвращение к Simula-корням) и модификаторы для параллельного программирования (синхропримитивы). Уровень сложности: меньше, чем Eiffel.

Язык Zonnon (Гуткнехт, Зуев) -- дальнейший шаг от Active Oberon в сторону сборочного (базисная четверка композиционных конструкций: module-object-definition-implementation) и конкретизирующего программирования (перегрузка операций, обработка исключений, процессы (activity) и протоколы). Уровень сложности: Modula-3, Ada.

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


<<<... | 2586—2577 | 2576—2567 | 2566—2557 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 369


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

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

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования