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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

Ivan

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

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

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


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


Ссылки по теме "Оберон" и "Компонентный паскаль"



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


Смотрите также обсуждения:
Free Pascal, Oberon, BlackBox
  • Разработка препроцессора gpre для delphi\freepascal.
  • Component Pascal и среда разработки BlackBox
  • FreePascal: реальная альтернатива или OpenSource — блажь?

  • <<<... | 4491—4482 | 4481—4472 | 4471—4462 | ...>>>
    Всего сообщений в теме: 4531; страниц: 454; текущая страница: 6


    № 4481   10-02-2006 10:22 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4480« (captain cobalt)

    Дополнительно, если в текущем контексте процедурный тип недопустим, то Р также означает результат вызова через процедурную переменную. Это ещё одно воплощение правила "если разыменование указателя очевидно, то разыменование можно не писать".

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


    № 4480   10-02-2006 10:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Правило очень простое.
    Если Р - это процедурная переменная, то в тексте программы:
    Р - это собственно процедурная переменная
    Р() - это результат вызова через процедурную переменную.

    Дополнительно, если в текущем контексте процедурный тип недопустим, то Р также означает результат вызова через процедурную переменную. Это ещё одно воплощение правила "если разыменование указателя очевидно, то разыменование можно не писать".

    ИМХО.


    № 4479   10-02-2006 08:33 Ответить на это сообщение Ответить на это сообщение с цитированием
    К чему это я всё? А вот к чему. В мануале написано
    ВызовПроцедуры = Обозначение [ФактическиеПараметры]

    Из этого следует что "P" модет являться одновременно не только адресом, а ещё и вызовом.Я долго мучился как это можно реализовать, а потом просто придумал пример в котором определить невозможно что из двух. По моему мнению "P" - адрес, а "P()" - вызов. XDS тоже так думает. А что думает мануал? Неправду?


    Язык программирования Оберон-2
    Х.Мёссенбёк, Н.Вирт
    Институт компьютерных систем, ETH Цюрих Март 1995
    Перевод с английского С.Свердлова
    ...
    9.2 Вызовы процедур
    Вызов процедуры активирует процедуру. Он может содержать список фактических параметров, которые заменяют соответствующие формальные параметры, определенные в объявлении процедуры (см. Гл. 10). Соответствие устанавливается в порядке следования параметров в списках фактических и формальных параметров. Имеются два вида параметров: параметры-переменные и параметры-значения. Если формальный параметр — параметр-переменная, соответствующий фактический параметр должен быть обозначением переменной. Если фактический параметр обозначает элемент структурной переменной, селекторы компонент вычисляются, когда происходит замена формальных параметров фактическими, то есть перед выполнением процедуры. Если формальный параметр — параметр-значение, соответствующий фак-тический параметр должен быть выражением. Это выражение вычисляется перед вызовом процедуры, а полученное в результате значение присваивается формальному параметру (см. также 10.1).
    ВызовПроцедуры = Обозначение [ФактическиеПараметры].


    № 4478   10-02-2006 08:17 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4475« (Сергей Губанов)
    ___________________________

    Ответ на »сообщение 4474« (Ev_genus)
    какие значения переменная V должна была БЫ принимать

    P := B;
    V := A(B); (* V = 1 *)
    V := A(P); (* V = 1 *)
    V := A(B()); (* V = 2 *)
    V := A(P()); (* V = 2 *)


    Спасибо. А ещё вопрос можно?


    V:=P; (* 0 or Error? *)



    № 4477   10-02-2006 08:15 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4474« (Ev_genus)
    ___________________________
    Переформулирую вопрос яснее:
    Если бы некоторый компилятор поддерживал в языке Оберон-2 перегрузку процедур по аргументам, то какие значения переменная V должна была БЫ принимать.

    Если бы у бабушки...


    № 4476   10-02-2006 08:08 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4466« (Ev_genus)
    ___________________________
    Я думаю, что двух процедур A быть не должно.


    № 4475   10-02-2006 08:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4474« (Ev_genus)
    какие значения переменная V должна была БЫ принимать

    P := B;
    V := A(B); (* V = 1 *)
    V := A(P); (* V = 1 *)
    V := A(B()); (* V = 2 *)
    V := A(P()); (* V = 2 *)


    № 4474   10-02-2006 07:41 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4473« (Старик Оберон)
    ___________________________


    Послушайте, мил человек, совет старика. Хотите писать тесты - выбирайте конкретный компилятор. Хотите писать свой компилятор - поработайте немного с существующими. Хотите потестировать аудиторию - прогоните пример хотя бы на имеющемся у Вас компиляторе.


    Всем << Есть две большие разницы между научить и проучить. Похоже люди яросно пытаются сделать второе. Если у вас тут демагогический кружок цель которого производить тонны флейма, то так бы и сказали что мне не сюда. Вы уже 3й пост пытаетесь меня послать, но всё никак не решитесь. Я получу мнение, хоть какое-то?!

    Переформулирую вопрос яснее:
    Если бы некоторый компилятор поддерживал в языке Оберон-2 перегрузку процедур по аргументам, то какие значения переменная V должна была БЫ принимать.
    Прошу прощение если смутил неправильной формулировкой вопроса или последующих ответов.

    Старик Оберон << Я много чем уже попользовался. Ни в коем случае не скажу, что попользовался в достаточном объёме. XDS сказал "Identifier A already defined". Что и предполагалось в том числе мной. За исключением этой "ошибки", всё правильно.

    Вот этот код я запускал в XDS


    MODULE Test;
    IMPORT Out;
    TYPE
    PROC=PROCEDURE():INTEGER;
    VAR
    P:PROC;
    V:INTEGER;

    PROCEDURE B():INTEGER;
    BEGIN
    RETURN 0
    END B;

    PROCEDURE A(T:PROC):INTEGER;
    BEGIN
    RETURN 1
    END A;

    PROCEDURE A(T:INTEGER):INTEGER;
    BEGIN
    RETURN 2
    END A;

    BEGIN
    P:=B;
    V:=A(B); (* V=??? *)
    Out.Int(V, 0);
    V:=A(P); (* V=??? *)
    Out.Int(V, 0);
    V:=A(B()); (* V=2  *)
    Out.Int(V, 0);
    V:=A(P()); (* V=2 *)
    Out.Int(V, 0);
    END Test.



    № 4473   10-02-2006 06:20 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4471« (Ev_genus)
    ___________________________

    RETURN - не так уж важно, пусть жалуется.

    Послушайте, мил человек, совет старика. Хотите писать тесты - выбирайте конкретный компилятор. Хотите писать свой компилятор - поработайте немного с существующими. Хотите потестировать аудиторию - прогоните пример хотя бы на имеющемся у Вас компиляторе.


    № 4472   10-02-2006 06:17 Ответить на это сообщение Ответить на это сообщение с цитированием
    Borland отказывается от развития своих IDE и публично ищет покупателя. Сначала подмяла рынок Паскаль-инструментария под себя, а теперь рухнула сама.

    Работали на Delphi? Наше вам с кисточкой. Экспроприация экспроприаторов...

    А что Оберон? А ничего. Ничего хорошего.


    <<<... | 4491—4482 | 4481—4472 | 4471—4462 | ...>>>
    Всего сообщений в теме: 4531; страниц: 454; текущая страница: 6




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

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

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

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

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