Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 5186 24-09-2007 14:46 | |
Ответ на »сообщение 5185« (Руслан Богатырев)
___________________________
Вроде Форта?
Вроде хаскеля :)
Вот это меня и настораживает. Новая конструкция в языке -- типа никаких проблем да еще и бесплатно. Может, просто не в курсе относительно цены? :)
Конкретно данная конструкция давно опробована в популярных языках, об "идеологических" проблемах я не слышал.
№ 5185 24-09-2007 14:24 | |
Ответ на »сообщение 5184« (pepper)
___________________________
P.S. А еще лучше, если бы язык позволял вводить такие концепции без правки компилятора.
Вроде Форта?
Не вижу я никаких проблем, помимо введения концепции "последовательности" (а-ля IEnumerable).
Вот это меня и настораживает. Новая конструкция в языке -- типа никаких проблем да еще и бесплатно. Может, просто не в курсе относительно цены? :)
№ 5184 24-09-2007 14:19 | |
Ответ на »сообщение 5183« (Руслан Богатырев)
___________________________
Привык считать, что за любую полезную вещь надо платить (или же расплачиваться). Хочется узнать цену вопроса, чтобы на одну чашу весов положить всю прелесть от выигрыша, а на другую -- проблемы (в том числе, смешения общего и частного).
Не вижу я никаких проблем, помимо введения концепции "последовательности" (а-ля IEnumerable).
P.S. А еще лучше, если бы язык позволял вводить такие концепции без правки компилятора. Но применительно к оберонам это будет означать полный редизайн языка.
№ 5183 24-09-2007 13:53 | |
Ответ на »сообщение 5182« (pepper)
___________________________
Понятно, что для ряда случаев именно это и требуется, однако если мы говорим о выразительности языка, то хотелось бы различать "общие циклы" (которые могут делать что угодно и к которым требуется более пристальное внимание при чтении) от частных случаев (перебор элементов - foreach).
Вопрос простой: зачем?
Привык считать, что за любую полезную вещь надо платить (или же расплачиваться). Хочется узнать цену вопроса, чтобы на одну чашу весов положить всю прелесть от выигрыша, а на другую -- проблемы (в том числе, смешения общего и частного).
№ 5182 24-09-2007 09:40 | |
Ответ на »сообщение 5175« (Руслан Богатырев)
___________________________
Для отсутствия таких ошибок надо просто аккуратно прописать семантику FOR.
Этого недостаточно. Помимо модификации переменной цикла в моем примере есть и другая проблема - модификация содержимого контейнера, по которому идет итерирование. Понятно, что для ряда случаев именно это и требуется, однако если мы говорим о выразительности языка, то хотелось бы различать "общие циклы" (которые могут делать что угодно и к которым требуется более пристальное внимание при чтении) от частных случаев (перебор элементов - foreach).
№ 5181 24-09-2007 06:56 | |
Ответ на »сообщение 5177« (Geniepro)
___________________________
Ответ на »сообщение 5175« (Руслан Богатырев)
___________________________
И объявлять I не надо...
Вот ведь отличнейший язык, хоть и сложноватый... ;о)
Интересно почитать Кауфмана "Языки программирования" (Руслан, наверное, может посодействовать ссылкой).
Так вот, большую часть книги (после демонтсрации ФП и марковского программирования на Рефале) концепции индустриального пр-я демонстрируются на примере Ады. Как мотивирует автор, "в этом языке есть всё". И к тому же красиво реализовано.
А в последней части книги идёт демонстрация Модулы-2 и того, что несмотря на гораздо более простые и немногообразные средства, все примеры от Ады реализуются так же выразительно. Зато происходит избежание ряда проблем - в частности, с дырами в области видимости.
Далее идёт аллегория "языка-чемоданчика" и "языка-сундука". И наглядный показ на сравнении Модулы-2 и Ады, как принцип исключения лишнего вплоть до сведения к неизбыточному базису помогает избежать многих тонких проблем.
№ 5180 24-09-2007 06:49 | |
Ответ на »сообщение 5168« (Jack Of Shadows)
___________________________
Ответ на »сообщение 5165« (Стэн)
___________________________
Это как возможность читать текст на английском не зная английского?
Опередили. Я думал о том же самом :))
Остается только добавить что "специалист не знакомый с ..." это оксюморон.
Либо он специалист, то есть знаком и не понаслышке с языком. Либо он не знаком, но в таком случае он не специалист.
Это все равно что искать профессиональных математиков, не знакомых с математической нотацией.
Учитывайте контекст - "встроенные системы". Здесь работают рука об руку и программисты, и специалисты-инженеры. И их эффективное взаимодействие очень важно. Непрограммист (но имеющий общие знания об алгоритмизации) должен иметь возможность просматривать, к примеру, алгоритм, реализующий логику работы некоторого агрегата, просто потому, что такой просмотр может дать лишний контроль правильности и быстро выявить какие-то ляпы. Т.е. язык должен быть на 70% понятным для чтения человеку с техническим образованием, а на остальные 30% осваиваться по ходу дела. (Кстати, часто поминаемый в соседней ветке ДРАКОН для "Бурана" создавался именно с этим прицелом - чтобы вся программируемая логика была понятна любому инженеру команды и была всё время у всех на виду, с многократным перексрёстным контролем.)
№ 5179 24-09-2007 03:28 | |
Ответ на »сообщение 5173« (Антон Григорьев)
___________________________
Хорошо, если так. Я проверял это по книге Свердлова "Языки программирования и методы трансляции" - там на 450-ой странице при описании синтаксиса Оберона-2 с помощью БНФ ФактическиеПараметры при вызове процедуры стоят в квадратных скобках и никаких обязательных керуглых скобок там нет. Следовательно, кто-то из вас двоих ошибается.
Да никто не ошибается :-). Просто fun() означает вызов функции, а fun - саму функцию.
№ 5178 24-09-2007 03:25 | |
Ответ на »сообщение 5165« (Стэн)
___________________________
Не такая уж глупость. Мне как-то попадалась статья одного программиста. Он сначала недоумевал, почему в документации на Маковсий API использовался паскаль, хотя большинство программ пишется на си. Но потом заметил что никаких трудностей с пониманием не испытывет, хотя совершенно не знает паскаля. В то же время, если бы использовался си, это создало бы проблемы для не знающих этого языка.
№ 5177 24-09-2007 03:14 | |
Ответ на »сообщение 5175« (Руслан Богатырев)
___________________________
В отношении управляющей переменной цикла FOR у меня достаточно давно сформировалась своя модель (идеальная) -- область видимости управляющей переменной должна ограничиваться телом цикла. Вне этого цикла ее значение не просто не определено, а она вообще недоступна.
Так сделано в Аде:
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure Test is
begin
for I in 1..10 loop
I := 1; -- Error: assignment to loop parameter not allowed
Put (I);
end loop;
Put (I); -- Error: "I" is undefined
end Test;
И объявлять I не надо...
Вот ведь отличнейший язык, хоть и сложноватый... ;о)
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|