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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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


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

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

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

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


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

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

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

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

<<<... | 1646—1637 | 1636—1627 | 1626—1617 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 463


№ 1636   10-01-2007 14:25 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1622« (AVC)
___________________________

Ответ на »сообщение 1620« (Сергей Губанов)
___________________________

Ответ на »сообщение 1586« (Илья Ермаков)



PROCEDURE (w: WeakPointer) Target* (OUT ptr: ANYPTR), NEW;
VAR adr: INTEGER;
BEGIN
adr := w.adr; (* make anchor in stack, to prevent concurrent GC *)
ptr := S.VAL(ANYPTR, w.adr);
adr := 0
END Target;



А почему нельзя просто так:

PROCEDURE (w: WeakPointer) Target* (OUT ptr: ANYPTR), NEW;
BEGIN ptr := SYSTEM.VAL(ANYPTR, w.adr);
END Target;

?

Наверное, потому что стек обрабатывается консервативно, а куча -- прецизно.
У меня другой вопрос: а когда вы (оба) NIL возвращать собираетесь?

Строка помещения якоря в стек необходима на тот случай, если произойдет прерывание на сборку мусора в середине инструкции ptr := S.VAL(ANYPTR, w.adr), и на объект больше не осталось ссылок. Тогда адрес объекта будет успешно извлечен в регистр, потом сборщик мусора, не найдя якорей на объект, обнулит указатель и удалит объект, но ведь адрес объекта уже был извлечен и будет возвращен... Поэтому до взятия адреса создаем якорь в стеке.
NIL явно не возвращается, w.adr обнуляется сборщиком мусора, когда объект более не имеет якорей.


№ 1635   10-01-2007 13:57 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1634« (Снегурочка)
___________________________

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

даже НЕ менее ценное



№ 1634   10-01-2007 13:54 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1631« (pepper)
___________________________

Видимо играет роль совокупность факторов. Я, например, не слышал, чтобы кто-нибудь "раскручивал" Питон. Но тем не менее он стал популярен в мэйнстриме.

Python вовремя занял пустующую нишу: интерпретируемый скриптовый язык, созданный с целью создания интерфейсной прослойки для работы с распределенной Unix-подобной ОС Amoeba (известного Эндрю Таненбаума), оказался удачен для web-программирования и вторгся в епархию Perl почти одновременно с PHP.

Автор языка, Гвидо ван Россум, работал в группе по созданию Amoeba в Национальной исследовательском центре в Амстердаме. Он имел опыт работы с Modula-2+ и беседовал с разработчиками Modula-3 (языка, вышедшего из экспериментов с Modula-2+) из DEC Systems Research Center. Вдохновленный идеями Modula-3, Гвидо ван Россум загорелся желанием реализовать их на уровне интерпретируемого языка для конкретной задачи работы с Amoeba, где возможности "местного" языка ABC были явно недостаточны. Так примерно в 1990-1991 гг. (на 4 года раньше своего конкурента - PHP Расмуса Лердорфа) и возник Python.

Затем была пауза до 1995 г., когда уже в Америке Гвидо ван Россум продолжил развитие Python'а. В районе 2000 г. в это дело вложила денюжку BeOpen.com. Потом уже Digital Creations. Потом где-то в 2001-2002 гг. все было переведено силами Zope, O'Reilly и ASTi (и примкнувшего к ним Google) на известную схему: сформировать "некоммерческий" фонд (Python Software Foundation) и толкать софт как бесплатный, беря свой навар с услуг. Благо Интернет давал возможность формировать рынок таких услуг относительно малыми средствами (да и NASA подмогла). Так по сути европейский язык "об'американили", раскрутив почти с нуля.

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


№ 1633   10-01-2007 11:25 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1627« (Jean)
___________________________


Понимаю, что история не знает понятия "если бы", что получилось, то получилось. Только вот тень на плетень наводить не надо и выдавать желаемое за действительное. А то молодежь и в самом деле подумает, что С/C++ нет никакой альтернативы.


Я не говорил, что нет альтернативы C/C++. Мало того, я считаю, что C/C++ будут продолжать сдавать свои позиции в мэйнстриме. Есть жаба, есть шарп, есть скриптовые языки. Есть оберон. У всех свои достоинства и недостатки.


№ 1632   10-01-2007 11:21 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1623« (AVC)
___________________________

Ответ на »сообщение 1615« (Alexey Veselovsky)
___________________________

С++ не стал бы столь популярным если бы он не был совместим с С. Увы.

Любопытно, почему несовместимость с Си не помешала, к примеру, популярности Явы?


Видимо потому что ява - изначально "карманный" язык одной крупной корпорации со всеми растекающимися отсюда последствиями, вроде сразу мощного фреймворка, компилятора, рекламы и т.п. и т.д. Кстати, успех той же явы отчасти базируется на успехе С++ и С ибо синтаксис весьма схож с С++ синтаксисом. +оттуда убрали то что больше всего мешало при программировании на оном С++. Также следует заметить, что ява как таковая - не шибко популярна. Популярны РЕШЕНИЯ на основе явы. В т.ч. сановские решения. На десктопе например, ява так и не прижилась.

С++ же не был изначально "карманным" языком какой-либо компании. Возник почти спонтанно. Да и сейчас ни одна из компаний не владеет "контрольным пакетом акций" C++, В отличае от той же явы или C#.

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

Если бы вместо С использовался какой-нибудь Оберон, то дыр в ОС было бы много меньше. Ибо наиболее частые дыры связаны именно с выходом за пределы массива. Конечно даже при написании ОС на Обероне, система должна использовать аппаратную защиту памяти и проч. Т.е. разные программы должны работать в РАЗНЫХ адресных пространствах. И с разным уровнем привилегий. Иначе будет плохо... Ибо вредоносный код может сделать в такой (бес защиты) что угодно.


№ 1631   10-01-2007 11:16 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1625« (AVC)
___________________________

Т.е. дело все-таки не в совместимости с Си, а, например, в "фирменной" поддержке?

Видимо играет роль совокупность факторов. Я, например, не слышал, чтобы кто-нибудь "раскручивал" Питон. Но тем не менее он стал популярен в мэйнстриме.


№ 1630   10-01-2007 10:21 Ответить на это сообщение Ответить на это сообщение с цитированием
>>>Вирт может делать со своими языками что угодно, дотачивая их до идеала, все
>>>равно ими никто не пользуется.
Между прочим, неплохая вещь - "дотачивать язык до идеала". Именно то, чего не хватает промышленности :)) В общем в университетах есть мозги, но нет денег, а в промышленности наоборот - есть деньги, мозги, конечно, тоже есть, только работать им не дают - они может и хотят "доточить" до идеала, но надо доллары "печь", пока поезд не ушел, не до идеалов тут :)
На счет "никто не пользуется": сами не хотите или начальство не разрешает. Интересно, как это у "орловцев" такая анархия получается - всем приказали идти "в ногу", а они поперек "толпы" лезут. Не иначе, как у Путина получили разрешение на использование Оберонов в российской индустрии. Я вот тоже себя немного "преступником" чувствую.



№ 1629   10-01-2007 09:52 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1626« (Сергей Губанов)
___________________________

Если это вопрос ко мне, то я его не понял.

Вопрос к обоим, хотя скорее - к Илье.
Слабый указатель должен возвращать NIL (NULL), если объект больше не существует.
В приведенном наброске кода этого не видно; просто было интересно узнать какой механизм предполагается для этого использовать.
 AVC


№ 1628   10-01-2007 09:46 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1626« (Сергей Губанов)

2) Если ему есть до этого дело (что я абсолютно не понимаю), то почему тогда ptr := S.VAL(ANYPTR, w.adr), а не ptr := S.VAL(ANYPTR, adr)?

Хотя, действительно, ptr := S.VAL(ANYPTR, adr), наверное, вообще бессмысленно. Вобщем, я ничего не понимаю.


№ 1627   10-01-2007 09:45 Ответить на это сообщение Ответить на это сообщение с цитированием
>>>И goto присутсвует в языке C++ не потому, что Страуструп не понимает
>>>прописных истин, преподносимых Виртом, а потому что иначе язык C++ ждала
>>>бы судьба оберонов.
А вот тут тебя точно "занесло".
Уж тебе, как профи, должно быть хорошо известно, что и почему было сделано.
Удачная судьба С и выросшего из него С++, конечно, имеет свои причины, но только "бедный" оператор goto и "замечательные качества" языка здесь совершенно не при чем. На С была написана успешная операционная система, которая, как говорится, "пошла". Вот и вся причина его "взлета". На определенном этапе развития языков программирования использовать язык, на котором написана сама операционка, оказалось удобным. А дальше уже пошла просто "раскрутка" по американскому варианту (вау, пейте только кока-колу, пишите только на С). И ты прекрасно понимаешь, что если бы история пошла по другому сценарию и для написания первых юниксов была бы выбрана, к примеру, виртовская Модула, то ты бы сейчас работал на каком-нибудь Оберон+ или Модуле#.
Понимаю, что история не знает понятия "если бы", что получилось, то получилось. Только вот тень на плетень наводить не надо и выдавать желаемое за действительное. А то молодежь и в самом деле подумает, что С/C++ нет никакой альтернативы.


<<<... | 1646—1637 | 1636—1627 | 1626—1617 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 463


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

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

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

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

Перейти на конкретную страницу по номеру
  
Время на сайте: 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» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

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