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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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


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

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

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

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


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

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

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

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

<<<... | 5886—5877 | 5876—5867 | 5866—5857 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 39


№ 5876   30-10-2007 02:02 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5873« (Jack Of Shadows)
___________________________

Вывод типов уже признан как полезное качество языков программирования.

А в чём его польза вообще? Только в том, что можно писать на один идентификатор меньше, или ещё в чём-то? Пока мне это напоминает то, что в Delphi, объявив функцию в разделе interface, при её реализации в implementation я могу не писать все параметры заново, а ограничиться именем функции. Раньше я так и делал, но потом оказалось, что для самоконтроля лучше продублировать объявление. Примерно такое же отношение у меня и к выводу типов.

Предположим, что в каком-то сложном выражении я ошибочно предположил, что тип результата будет A, а на самом деле он будет B. Если я явно написал тип результата, компилятор меня сразу поправит. А если положился на вывод типов, то функция в итогне будет иметь не тот тип, который я ожидаю. Таким образом, явное указание типа - это что-то вроде доказательства кода, и я не понимаю, какие преимущества даёт отказ от него (ну, кроме того, что надо нажимать меньше кнопок).


№ 5875   30-10-2007 01:16 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5873« (Jack Of Shadows)
___________________________

... уже признан как полезное качество языков программирования. Так например в сишарп 3.5 будет автовывод типов. ...

Хорошая рекомендация, ничего не скажешь.
Эдак получится, что любой язык должен быть расширением сишарп ***.


№ 5874   30-10-2007 01:06 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5873« (Jack Of Shadows)
___________________________

Ответ на »сообщение 5872« (Антон Григорьев)
___________________________
Как-то вы странно перескочили с проблемы автовывода типов
А проблемы нет. Есть непринятие и надуманные страхи.


Надуманные?? Ни хрена себе...


№ 5873   30-10-2007 01:00 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5872« (Антон Григорьев)
___________________________
Как-то вы странно перескочили с проблемы автовывода типов
А проблемы нет. Есть непринятие и надуманные страхи.
Что касается перескока на другую тему, да тут это сплошь и рядом происходит. :))

а компилятор сам бы догадался
Правильно. И не только догадался бы, но и нам бы подсказал красивой всплывающей подсказкой в IDE.
Вывод типов уже признан как полезное качество языков программирования. Так например в сишарп 3.5 будет автовывод типов. Он неизбежно проникнет в mainstream так же как в свое время и сборщик мусора перекочевал из функциональных языков во все основные императивные языки.

Так что я думаю спорить на эту тему уже поздно. Разве что закрытым сообществам типа оберонистов :))



№ 5872   30-10-2007 00:51 Ответить на это сообщение Ответить на это сообщение с цитированием
Как-то вы странно перескочили с проблемы автовывода типов на сравнение способов типизации. ИМХО, это разные вещи. Автовывод это примерно следующее. Пусть у нас есть функция Add, описанная так:

function Add(A, B: Integer): Integer;
begin
  Result := A + B
end;



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


№ 5871   29-10-2007 19:10 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5870« (Jack Of Shadows)
___________________________

>>>Охохохо :)) Чрезвычайная переоценка с "большей безопасностью" (что я только что обьяснил) и чрезвычайная же недооценка потери гибкости. Колоссальная потеря гибкости. Приводящая к созданию громоздких механизмов интерфейсов и наследования (со своими болячками) для решения этой проблемы.

Дело в сравнительной значимости "безопасности" и "гибкости".

Мне кажется, что -- резюмируя сегодняший "раунд" :) -- какая-то подвижка имела место.
До этого мы просто не понимали друг друга в отношении автовывода и т.п.
 AVC


№ 5870   29-10-2007 18:55 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5867« (AVC)
___________________________
However this may not be desirable where the programmer wishes to create closed abstractions.
Проблема я считаю надуманная. Потому что для того чтобы создавать subtypes вам все таки придется явно их описывать как принадлежащими к основному типу. Да еще и дать реализацию ВСЕХ необходимых функций, входящих в состав типа класса. Случайно сделать вы это в принципе не сможете. По дури выполнить СТОЛЬКО ЛИШНЕЙ работы тоже. Ну а если уж вы умудритесь найти такого настойчивого дурака который избрал бы такой тяжелый в исполнении метод расшибания своего лба, то уж извините, это не является недостатком ни хаскеля, ни оберона.

(Я подчеркнул места о большей безопасности типов в номинативной системе по сравнению со структурной -- ценой некоторой потери гибкости.)
Охохохо :)) Чрезвычайная переоценка с "большей безопасностью" (что я только что обьяснил) и чрезвычайная же недооценка потери гибкости. Колоссальная потеря гибкости. Приводящая к созданию громоздких механизмов интерфейсов и наследования (со своими болячками) для решения этой проблемы.

Считается, что языки вроде Хаскеля и ML обладают структурной системой типов. В чем именно это проявляется?
В хаскеле это type classes и GADT. Ocaml я не знаю.

Или Хаскелю удается получить от структурной типизации одни плюсы, без каких-либо минусов?
Какие минусы ? Пресловутая "потеря безопасности" ? Это даже не стоит обсуждать. Беспочвенные домыслы.
Что нибудь еще ? Есть ли система типов еще более мощная ?
Да есть. Dependent types.
Сейчас ведутся работы некоторыми членами хаскель сообщества над реализацией dependent types в хаскеле.
Посмотрим к чему это приведет.



№ 5869   29-10-2007 18:32 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5857« (Дядя .СЭМ)
___________________________

... Умных людей нужно читать и перечитывать ...

Точно!!
Дозволял бы форум, поставил бы Вас в "друзья"!


№ 5868   29-10-2007 18:30 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5866« (Jack Of Shadows)
___________________________

>>>Ах вот вы о чем. Как инструмент полиморфизма конечно, результат достигается один и тот же. А вот механика принципиально разная.

Совершенно верно. Я сконцентрировался на результате, а механизмы его достижения намеренно игнорировал, чтобы выделить общее.
 AVC


№ 5867   29-10-2007 18:26 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 5865« (Jack Of Shadows)
___________________________

AVC>>>Это очень похоже на принцип размерности в физике: килограммы нельзя складывать с секундами, хотя структурно и те, и другие выражаются через значение с плавающей точкой.

Немного о номинативной системе типов:
http://en.wikipedia.org/wiki/Nominative_type_system
Nominal typing is useful at preventing accidental type equivalence, and is considered to have better type-safety than structural typing. The cost is a reduced flexibility, as, for example, nominal typing does not allow new super-types to be created without modification of the existing subtypes.
http://en.wikipedia.org/wiki/Structural_typing:
Structural subtyping is arguably more flexible than nominative subtyping, as it permits the creation of ad hoc types and interfaces; in particular, it permits creation of a type which is a supertype of an existing type T, without modifying the definition of T. However this may not be desirable where the programmer wishes to create closed abstractions.
(Я подчеркнул места о большей безопасности типов в номинативной системе по сравнению со структурной -- ценой некоторой потери гибкости.)
Случайно наткнулся также на сравнение разных систем типов:
http://www.c2.com/cgi/wiki?NominativeAndStructuralTyping

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

Возможно, Вы правы.
Поэтому я спрошу об этом Вас.
Проясните, пожалуйста, один момент. Считается, что языки вроде Хаскеля и ML обладают структурной системой типов. В чем именно это проявляется?
Или Хаскелю удается получить от структурной типизации одни плюсы, без каких-либо минусов?
 AVC


<<<... | 5886—5877 | 5876—5867 | 5866—5857 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 39


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

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

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

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

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

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