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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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


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

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

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

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


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

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

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

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

<<<... | 5256—5247 | 5246—5237 | 5236—5227 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 102


№ 5246   26-09-2007 17:56 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5244« (Сергей Перовский)
___________________________

Присваивание и цикл - признаки императивности.

А откуда это следует?


№ 5245   26-09-2007 17:55 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5243« (Jack Of Shadows)
___________________________

Ну вот опять по кругу.
Уже же обсужали наверное раз сто.


Иногда полезно и двести раз обсуждать. Сомневаться никогда не врядно. Особенно там, где нет общепринятого, четко сформулированного значения термина.

Императивность определяется серией операций (опероторов) изменяющих состояние.

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

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

Кстати, а SQL -- императивный язык?


№ 5244   26-09-2007 17:51 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5242« (Руслан Богатырев)
___________________________
А что такое императивность для языка программирования? Присваивание? Цикл? Неужели?
Присваивание и цикл - признаки императивности.
Причем признаки достаточно однозначные.
В функциональном программировании присваивание невозможно в силу отсутствия понятия состояния.
Не понял, почему это вызывает вопросы.


№ 5243   26-09-2007 17:48 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5242« (Руслан Богатырев)
___________________________
Ну вот опять по кругу.
Уже же обсужали наверное раз сто.
Императивность определяется серией операций (опероторов) изменяющих состояние.
Соответственно ключевым оператором императивного языка является присваивание, и наиболее часто используемым приемом - цикл.
Соответственно важной особенностью императивных языков является наличие операторов (ветвление, цикл, безусловный и условный переход, выход из подпрограммы, возвращение результата), в отличие от функциональных языков где существуют только декларации и функции.
Все остальное что наращивается поверх императивной парадигмы (процедурное программирование, ОО, модульное) это уже частности.

Wikipedia есть МНЕНИЕ многих интернет-прохожих. К ней так и надо относиться.
Я отношусь к википедии гораздо большим доверием и уважением нежели вы. Впрочем это уже личный выбор каждого.


№ 5242   26-09-2007 17:37 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5241« (Jack Of Shadows)
___________________________

Так и есть: occam is an imperative procedural language (such as Pascal).

Wikipedia есть МНЕНИЕ многих интернет-прохожих. К ней так и надо относиться.

А что такое императивность для языка программирования? Присваивание? Цикл? Неужели?


№ 5241   26-09-2007 17:33 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5238« (Руслан Богатырев)
___________________________
Вопрос: как вы считаете, язык Occam относится к императивным?
Occam в глаза не видел.
Смотрим книжку на предмет признаков императивности:
- Присваивание ? Есть
j := j + 1

- Циклы ? Есть


SEQ
  SEQ i = 0 FOR n
    SEQ j = 0 FOR n
      a[i][j] := 0.0 (REAL32)


Да еще с изменением ячеек массива на месте.

- Операторы не возвращающие значений ?
Есть. Смотрите if

Так теперь смотрим http://en.wikipedia.org/wiki/Occam_programming_language

Так и есть: occam is an imperative procedural language (such as Pascal).


№ 5240   26-09-2007 17:23 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5239« (Сергей Перовский)
___________________________
Какие претензии к императивному Оберону, что он не поддерживает конструкции, практически в императивном программировании не используемые?

Абсолютно никаких. Был вопрос чем именованные функции отличаются от анонимных. К оберону никаких претензий.
Более того я первый противник скрещивания ужа с ежом. Я считаю что вместо того чтобы делать очередного монстра PL1 for 21 century нужно просто на одной платформе полноценно поддерживать 2 языка - чисто императивный OO (Оберон) и чисто функциональный (haskell)
Задачей в данном случае является обеспечить бесшовную интеграцию языков. Чтобы можно было модули разных языков компилировать в одном проекте.


№ 5239   26-09-2007 16:39 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5235« (Jack Of Shadows)
___________________________
Я тоже не передаю функции в качестве параметров и тем более не возвращаю их как результат, когда работаю на императивных языках.
Об этом и звук :)
Какие претензии к императивному Оберону, что он не поддерживает конструкции, практически в императивном программировании не используемые?


№ 5238   26-09-2007 16:34 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5235« (Jack Of Shadows)
___________________________

Хотя вроде задачи одни и те же. С чего бы это ? :))


Задачи-то одни, а вот полушарии мозга -- разные :)

В ИП привыкли работать не на том уровне абстракций, как в ФП. Это не значит, что нельзя работать на ином. Можно. И работают. Просто разная шкала ценностей. ИП ценно одними средствами. ФП -- другими. И под эти средства заточены синтаксис и семантика. ИП и ФП -- два полюса. Диалектика... :)

Кстати, в ИП можно вполне сохранить степень детализации более высокую, нежели в ФП (как и сейчас), но при этом легко уйти от императива...

Вопрос: как вы считаете, язык Occam относится к императивным?

См. http://www.europrog.ru/ilog.html#260207 и
"Introduction to the Programming Language Occam". Daniel Hyde (1995)
http://www.europrog.ru/paper/dh1995-01e.pdf


№ 5237   26-09-2007 16:23 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5236« (Geniepro)
___________________________
А вот посложнее пример - простейшая сортировка:
Допустим, такой алгоритм на псевдокоде на основе Си:

void sort (Ord el => el arr[])
{
    int len = length (arr);
    el  ai, aj;

    for (int i = 1; i < len; i++)
    {
        for (int j = 0; j < i; j++)
        {
            ai = arr [i];
            aj = arr [j];
            if (aj > ai)
            {
                arr [i] = aj;
                arr [j] = ai;
            }

        }
    }
}

и почти дословный перевод на Хаскелл:

sort arr = do
    let len = length arr
    forM [1..len-1] $ \i -> do
        forM [0..i-1] $ \j -> do
            ai <- readIORef (arr !! i)
            aj <- readIORef (arr !! j)
            when (aj > ai) $ do
                (arr !! i) =: aj
                (arr !! j) =: ai

-- вспомогательные функции:

ref =: n = ref `writeIORef` n

when condition action = if condition then action else return ()

Тут внутри функции sort имеются три анонимных функции, две из которых имеют параметры i и j соответственно и подаются как аргументы функциям forM, а третья - без параметров, подаётся функции when...


<<<... | 5256—5247 | 5246—5237 | 5236—5227 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 102


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

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

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

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

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

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