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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

Ivan

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

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

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


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


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



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


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

  • <<<... | 4471—4462 | 4461—4452 | 4451—4442 | ...>>>
    Всего сообщений в теме: 4531; страниц: 454; текущая страница: 8


    № 4461   09-02-2006 08:53 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4460« (Андрей Хохлов)
    ___________________________
    Критика Си - дело конечно хорошее, но делать его надо корректно. Возможно, это немного сложнее рассказов про собственные познания и отсутствие оных у других (В. Лосю).

    char *p="car";
    2[p]='d';

    Правилен ли этот текст и если да, что он делает?
    Если вы не знаете ответа, не начинайте с экспериметов.

    Эт шо, вы всерьёз считаете, что это задание представляет из себя предмет для обcуждения? Вас на нём на собеседовании "срезали", да? Теперь это - незаживающая душевная рана? :о)
    Ну, извольте, я вам её подлечу...

    2[p] эквивалентно p[2], *(p+2) - в общем, типичный обрасчик пресловутой "гибкости", которой можно студентов-первокурсников смущать...

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

    Так вы с тем примером с pintf-ами таки разобрались или до сих пор никак? Может подсказать? :о)


    № 4460   09-02-2006 07:22 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4451« (Сергей Губанов)
    ___________________________

    Ответ на »сообщение 4446« (Андрей Хохлов)
    И в чем же я не прав?
    x+++++y разбивается на лексемы так:
    x \ ++ \ ++ \ + \ y.
    Вы - правы! Оно разбивается так. А на самом деле, должно так: "x++ + ++y". Потому, что только в такой комбинации данное выражение имеет смысл. Используемый лексический анализатор до этого додуматься не способен. Значит надо либо сочинить более умный лексический анализатор, либо задаться вопросом - зачем вообще такой синтаксис нужен.


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

    В данном случае нет повода считать, что допущена опечатка. Английский оригинал найти не удалось, но нашлась ppt-презентация и в ней все тоже самое.

    Критика Си - дело конечно хорошее, но делать его надо корректно. Возможно, это немного сложнее рассказов про собственные познания и отсутствие оных у других (В. Лосю).

    Если бы речь шла о чем-то в роде

    while (*p++=*q++);

    не было бы вопроса, хотя есть примеры и хуже, скажем такой:

    char *p="car";
    2[p]='d';

    Правилен ли этот текст и если да, что он делает?
    Если вы не знаете ответа, не начинайте с экспериметов.


    № 4459   09-02-2006 04:34 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4457« (Ev_genus)
    ___________________________
    Не в обиду.
    Да ну, какие обиды! :о)
    Мало ли что можно писать.
    Господи, как вы правы! :о)
    Под лексером я имею ввиду весьма конкретный алгоритм описаный в книгах
    ЧТО описывали? КАКОЙ алгоритм? ДЛЯ КАКОГО КЛАССА ГРАММАТИК?
    Так вот этот алгоритм разобъёт на лексемы так как уже трижды предлагалось, тоесть неправильно :) по-вашему
    Расшифруйте фразу, пжлст....


    № 4458   09-02-2006 04:29 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4452« (Ev_genus)
    ___________________________
    Попытаюсь написать мозголомный код на Обероне. Может и не получится :) ногами не бейте

    >>> (Сергей Губанов)
    >>> SKIPPED

    Писал в текстовом редакторе.
    Похоже на то, что сначала надо хотя бы RTFM...... :о)


    № 4457   09-02-2006 04:22 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4456« (Владимир Лось)
    ___________________________
    Не в обиду. Мало ли что можно писать. Под лексером я имею ввиду весьма конкретный алгоритм описаный в книгах и реализованый в прокраммах типа lexx, flex и им подобных. Так вот этот алгоритм разобъёт на лексемы так как уже трижды предлагалось, тоесть неправильно :) по-вашему


    № 4456   09-02-2006 04:19 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4450« (Ev_genus)
    ___________________________
    Может я вам америку открою, но лексер (алгоритм разбития на лексемы) - денерминированый автомат. Если вам это о чём то говорит.
    Ух-ты! А давайте ещё о контекстной зависимости вспомним?... :о)
    Это я по поводу...
    Поэтому разбиение на лексемы - такое какое оно есть, а не правильное/неправильное/помоемунеправильное/кажетсянеправильное.
    ... а вот по этому поводу (правильности и трудностях при окончательном однозначном разбиении текста на Си++ на лексемы), можете почитать хотя бы у Е.Зуева в его статье, о том, как они компилятор с Си++ писали. Или его диссертацию... (на его цюрихской страничке оба материала есть)


    № 4455   09-02-2006 03:44 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4454« (Ev_genus)
    ___________________________

    Забавно не это. Попробуйте откомпилировать в Plug-In ETH Oberon for Windows только этот кусок:

    TYPE
        PROC = PROCEDURE(): P;
        P = POINTER TO PROC;



    Здесь строчки в определении типов намеренно переставлены местами.

    А произойдет вот что: при компиляции окно с тестовым примером спустя несклько секунд принудительно закроется. Простой TRAP stack overflow из-за имеющей место быть реализации рекурсивного определения в конкретном компиляторе.


    № 4454   09-02-2006 03:15 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4453« (Сергей Губанов)

    Спасибо за исправления. Писал в текстовом редакторе. Приношу извинения общественности. Короче рассматривайте мозголомный код под редакцией ув. Сергея Губанова


    № 4453   09-02-2006 02:56 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4452« (Ev_genus)

    DO - зарезервированное слово.

    Указатели могут быть только на RECORD или на ARRAY. На процедуру указатель - нонсенс, ибо сама процедурная переменная и есть адрес процедуры.
    Надо писать так:

    TYPE
      P = PROCEDURE (): P;


    Предварительное объявление делается "крышкой" ^

    PROCEDURE^ Do(): P;


    Такой вызов
    Do();
    делать нельзя (семантическая ошибка). Выражения в вакууме не болтаются - их надо к чему-то присваивать или с чем-то сравнивать. Можно так p := Do(); или так: IF Do() # NIL THEN ... END; или, хотя бы, так: IF Do() = Do() THEN ... END.

    Такой вызов
    Do()();
    делать нельзя еще и по другой причине - последняя скобка (XXX) есть операция приведения типа выражения к типу XXX, а в данном случае тип XXX отсутствует - синтаксическая ошибка.
    Можно так:

    VAR p: P;
    BEGIN
      (* V = 0, p = NIL *)
      p := Do();
      (* V = 1, p = Do2 *)
      p := p();
      (* V = 2, p = Do *)
      p := p();
      (* V = 1, p = Do2 *)



    № 4452   09-02-2006 02:25 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4448« (Владимир Лось)
    ___________________________


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


    Попытаюсь написать мозголомный код на Обероне. Может и не получится :) ногами не бейте


    MODULE Test;
    TYPE
        P=POINTER TO PROC;
        PROC=PROCEDURE():P;
    VAR
        V:INTEGER;

    PROCEDURE DO():P;

    PROCEDURE DO2():P;
    BEGIN
    V:=2;
    RETURN DO;
    END DO2;

    PROCEDURE DO():P;
    BEGIN
    V:=1;
    RETURN DO2;
    END DO;

    BEGIN
    DO();
    (*Чему ту V равно?*)
    DO()();
    (*А тут?*)
    END Test.



    <<<... | 4471—4462 | 4461—4452 | 4451—4442 | ...>>>
    Всего сообщений в теме: 4531; страниц: 454; текущая страница: 8




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

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

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

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

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