Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 5216 26-09-2007 02:28 | |
Ответ на »сообщение 5215« (Beginner)
___________________________
>>>Позор мне. В последнем слове, что могу сказать в оправдание - пал жертвой привычки.
Суд удаляется на совещание... :D
№ 5215 26-09-2007 02:13 | |
Ответ на »сообщение 5204« (AVC)
___________________________
0FAX
Позор мне. В последнем слове, что могу сказать в оправдание - пал жертвой привычки. Цвета в Дельфи без ведущего 0. А здесь по существу (по практике) надо с 0 начинать.
№ 5214 26-09-2007 01:59 | |
Ответ на »сообщение 5208« (Geniepro)
___________________________
Ой, даже не предлагайте! Я вот щас два часа делал простейшие примитивные функции работы с линейным списком на КП - аж замучился. Оказывается, вообще всё забыл и разучился...
На минутку возвращаясь к вчерашней задаче (она мне показалась любопытной).
Почему для нее надо брать линейный список?
По краткому размышлению, в основу лучше положить приоритетную очередь, а это уже скорее дерево, а лучше всего -- массив.
На моем (не самом быстром) компе список простых чисел до миллиона выводится за пару секунд.
(Реализация несколько строчек на КП, хотя, из-за экспериментального характера кода, "непедагогических". :) )
№ 5213 26-09-2007 01:21 | |
Смысла вводить foreach ни в C# ни в Delphi (а ввели ведь) не вижу. Ни укорачивания кода, ни унификации кода для разных типов контейнеров, этим не достигается. Единственная цель, которая действительно этим достигнута - "шобы было".
№ 5212 26-09-2007 00:59 | |
Ответ на »сообщение 5209« (Geniepro)
___________________________
>>> Процедура utilizePacket должна проверить пакет на его целостность, и если с ппакетом всё в порядке (контрольная сумма или ещё что соответсвует) - то продолжить обработку пакета, иначе - вызвать badPacket...
>>> В чём проблема-то?
Или вызывающая процедура должна проверить целостность пакета до вызова utilizePacket? А как это делается?... И причем тут Оберон я уже писал...
№ 5211 25-09-2007 17:33 | |
Ответ на »сообщение 5208« (Geniepro)
___________________________
Ответ на »сообщение 5201« (Стэн)
___________________________
И что это мы все про линейные массивы... Давайте напишем на Обероне цикл обхода хотябы двоичного дерева, да так, чтобы было видно, по каким элементам идет итерация...
Ой, даже не предлагайте! Я вот щас два часа делал простейшие примитивные функции работы с линейным списком на КП - аж замучился. Оказывается, вообще всё забыл и разучился...
Нет, всякие Хаскеллы вредны, так как балуют отсутсвием низкоуровнего программирования... :о)))
Да ладно уж! :)
Обход дерева в любом детском учебнике есть.
На глаз, что-то вроде
PROCEDURE (t: Tree) Traverse* (p: PROCEDURE(node: Node));
PROCEDURE tr(n: Node);
BEGIN IF n # NIL THEN tr(n.left); p(n); tr(n.right) END
END tr;
BEGIN tr(t.root)
END Traverse;
№ 5210 25-09-2007 16:56 | |
Ответ на »сообщение 5208« (Geniepro)
___________________________
>>>(Пытаюсь сделать простенькую программку, которая бы выдавала бесконечный список простых чисел - плутал в трёх соснах при копировании и реверсировании списка... Цель - сравнить скорость подпрограмм работы со списками на Хаскелле, КП и Си...)
Наверное, все же не просто программку, выдающую бесконечный список простых чисел. :)
Там проблема могла быть только в создании "абстракции целого числа произвольного размера" (такая, кстати, в КП уже есть: Integers.Integer), чтобы было куда результаты "утрамбовывать" и потом на печать выводить.
Наверное, речь о программе, выдающую бесконечный список простых чисел без пропусков.
А что предполагается делать, когда оперативная память кончится?
№ 5209 25-09-2007 16:09 | |
Ответ на »сообщение 5207« (Стэн)
___________________________
Допостим, что я выяснил, что в коде написано так:
var buf : array[100];
recv( s, buf, LEN(buf), 0 );
utilizePacket( buf );
Вместо правильного:
var buf : array[100];
if recv( s, buf, LEN(buf), 0 ) = 100 then
utilizePacket( buf );
else
badPacket( buf );
end
Оберон же ничем в данном случае не поможет... По аналогии с примерами из C - явно не проконтролировал - сам дурак...
Процедура utilizePacket должна проверить пакет на его целостность, и если с ппакетом всё в порядке (контрольная сумма или ещё что соответсвует) - то продолжить обработку пакета, иначе - вызвать badPacket...
В чём проблема-то?
№ 5208 25-09-2007 14:38 | |
Ответ на »сообщение 5201« (Стэн)
___________________________
И что это мы все про линейные массивы... Давайте напишем на Обероне цикл обхода хотябы двоичного дерева, да так, чтобы было видно, по каким элементам идет итерация...
Ой, даже не предлагайте! Я вот щас два часа делал простейшие примитивные функции работы с линейным списком на КП - аж замучился. Оказывается, вообще всё забыл и разучился...
Нет, всякие Хаскеллы вредны, так как балуют отсутсвием низкоуровнего программирования... :о)))
(Пытаюсь сделать простенькую программку, которая бы выдавала бесконечный список простых чисел - плутал в трёх соснах при копировании и реверсировании списка... Цель - сравнить скорость подпрограмм работы со списками на Хаскелле, КП и Си...)
№ 5207 25-09-2007 11:42 | |
Ответ на »сообщение 5206« (AVC)
___________________________
>>> Честно говоря, я не понял, где здесь таятся претензии к Оберону.
Всегда ждете подвоха?.. )))
>>> Да и о подобных хакерских атаках я что-то не слыхал.
А это гипотетическая ситуация атаки на реализацию протокола...
Допостим, что я выяснил, что в коде написано так:
var buf : array[100];
recv( s, buf, LEN(buf), 0 );
utilizePacket( buf );
Вместо правильного:
var buf : array[100];
if recv( s, buf, LEN(buf), 0 ) = 100 then
utilizePacket( buf );
else
badPacket( buf );
end
Оберон же ничем в данном случае не поможет... По аналогии с примерами из C - явно не проконтролировал - сам дурак...
>>> Т.е. я просто не понял этого Вашего замечания.
Необходимо учитывать контекст обсуждения. Изначально было о том, что компактная грамматика Оберона требует написания кода, который содержит слишком много низкоуровневых деталей... А потом именно Вы как-то плавно перешли на тему "Оберон vs C: Массивы Оберона лучше чем в С"... На что я Вам показываю, что всевозможные ошибки на массивах не заканчиваются...
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|