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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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


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

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

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

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


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

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

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

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

<<<... | 5606—5597 | 5596—5587 | 5586—5577 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 67


№ 5596   19-10-2007 05:37 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5590« (Руслан Богатырев)
___________________________

В момент прозрения человек не думает, и это принципиально.


Это гипотеза, просто Ваша убежденность, или же Истина?


Это слова, всего лишь. Истину найдёте сами, разумеется.


№ 5595   19-10-2007 02:50 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5591« (Geniepro)
___________________________
Ваш длинный ответ доказывает, что с базовой программистской грамотностью не все в порядке (sorry).

Но в конце вывод насчет правильных циклов -- еще одно свидетельство в пользу WHILE в этом детском споре WHILE против FOR.


№ 5594   18-10-2007 15:13 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5593« (Руслан Богатырев)
___________________________
Или самим создавать правильные языки :)

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


№ 5593   18-10-2007 14:57 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5591« (Geniepro)
___________________________

Нужно пользоваться правильными языками с правильными циклами, и тогда проблем с их инвариантами не будет...

Или самим создавать правильные языки :)


№ 5592   18-10-2007 13:32 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5588« (Миша)
___________________________
В момент прозрения человек не думает, и это принципиально.
Если интересно мнение присутствующих по этому поводу, почитайте ветку про симантическое моделирование. Там это подробно обсасывалось. Повторяться неинтересно.


№ 5591   18-10-2007 12:00 Ответить на это сообщение Ответить на это сообщение с цитированием
Что-за такая проблема с инвариантами циклов? 8-о
Открываем любую книгу типа книги Калинина и Мацкевича "Универсальные языки программирования. Семантический подход" и рассматриваем все эти инварианты (используется Ада-подобный псевдокод):

Цикл while-do:

while B do
  S
end do;

Правило вывода инварианта для этого цикла такое:

            {P & B} S {P}
------------------------------------
{P} while B do S end do; {P & not B}


Цикл do-until:

do
  S
until B;

Переведём этот цикл в вид while-do:

S;
while not B do
  S
end do;

и получим правило вывода:

    {P} S {Q}, (Q & not B) => P
------------------------------------
{Q} while not B do S end do; {Q & B}

что для цикла do-until выглядит так:

{P} S {Q}, (Q & not B) => P
---------------------------
{P}  do S until B;  {Q & B}


Цикл do-while-do:

do
  S1
while B do
  S2
end do;

Этот цикл можно переписать так:

S1;
while B do
  S2;
  S1
end do;

Правило вывода:

        {P} S1 {Q}, {Q & B) S2 {P}
-------------------------------------------
{P} do S1 while B do S2 end do; {Q & not B}


Цикл Дейкстры

do
  B1: S1;
  B2: S2;
  . . .
  Bn: Sn
end do;

Правило вывода:


        forall i. (1<=i<=n => {P & Bi} Si {P})
------------------------------------------------------
{P} do B1: S1; B2: S2; ... Bn: Sn end do; {P & not BB}

где BB = exists i. (1<=i<=n & Bi)
    P  - инвариант цикла


Ну и, наконец, всеми обожаемый цикл for:

for X in диапазон do
  S(X)
end do;

Будем считать, что переменная X локальна для этого цикла (недоступна за пределами цикла) и не может изменяться внутри него (то есть, так, как это сделано в языке Ада). Тогда этот цикл эквивалентен следующей повледовательности:

S(x1); S(x2); ... S(xn)

где x1, x2,...,xn - множество значений указанного диапазона.

Так же этот цикл можно представить в таком виде:

if диапазон'FIRST <= диапазон'LAST then
  block
    x : диапазон'TYPE := диапазон'FIRST;
  begin
    do
      block
        use X : constant диапазон'TYPE;
      begin
        S(X)
      end block;
    while X < диапазон'LAST do
      X := диапазон'SUCC(X);
    end do;
  end block;
end if;

Здесь блоки введены для удовлетворения условиям о локальности переменной цикла и невозможности изменения её значения при выполнении тела цикла.

Правило вывода для цикла for:

{(диапазон'FIRST<=X<=диапазон'LAST) & P([диапазон'FIRST..X))}
                            S(X)
                  {P([диапазон'FIRST..X])}
-------------------------------------------------------------
            {P([диапазон'FIRST..диапазон'FIRST))}
              for X in диапазон do S(X) end do
            {P([диапазон'FIRST..диапазон'LAST))}



Нужно пользоваться правильными языками с правильными циклами, и тогда проблем с их инвариантами не будет...


№ 5590   18-10-2007 08:11 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5588« (Миша)
___________________________

В момент прозрения человек не думает, и это принципиально.

Это гипотеза, просто Ваша убежденность, или же Истина?


№ 5589   18-10-2007 07:30 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5558« (Как слышно? Приём!)
___________________________

Откуда здесь дитяти, а тем более младенцы?
Миша, Вы не в курсе.
Системы не при чём.
Тут бой оберонистов с функциональщиками.

Не далее как три дня назад было тут и про "Целеустремлённые системы", и про моделирование.
Понятно, что тема - про Обероны, просто пишу по факту дискуссии.


№ 5588   18-10-2007 07:16 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5557« (Руслан Богатырев)
___________________________

Будет время, прочитайте последний абзац моей заметки про Пойа: http://rbogatyrev.livejournal.com/

Замечательно.
Только схема, предложенная Пойа, несколько однобока, несмотря на наличие в ней "прозрения".
Мне показалось, что он относит это явление к умственной деятельности, в то время как природа его иная. В момент прозрения человек не думает, и это принципиально.
А то, что у Пойа в схеме расположено по периметру квадрата, уже - продукт логической обработки (работы ума).
Вот это перевешивание в сторону умственной деятельности, IMHO, и будет уводить от понимания того, о чём Вы поведали в последнем абзаце статьи.


№ 5587   18-10-2007 07:00 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5584« (info21)
___________________________

Ответ на »сообщение 5582« (Денис Зайцев)
___________________________

... Или пользуйтесь WHILE или REPEAT UNTIL. ...


Что и требовалось доказать.

А переменная цикла в инварианте может оказаться помимо нашего желания.


Мне тоже в голову пришло: "Вот ведь коварный FOR!" :)
Но все-таки дело в моей небрежности: говорил о FOR, а думал о WHILE.
(Отсюда и другой ляп: мол, не знаю, как назвать это место -- началом или концом цикла. А ведь в FOR инкремент/декремент управляющей переменной вынесен из тела цикла, так что начало и конец тела цикла совсем не совпадают.)

BTW, отказ Вирта от цикла FOR в Обероне-1 сказывается-таки на деталях программирования.
На Обероне мы пишем FOR i := 0 TO LEN(a)-1 DO ... END, в то время как на Модуле-2 писали FOR i := 0 TO HIGH(a) DO ... END.
 AVC


<<<... | 5606—5597 | 5596—5587 | 5586—5577 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 67


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

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

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

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

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

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