OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 19 Июнь, 2025 00:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 197 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 10  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 14:26 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
info21 писал(а):
Причем тут библиотечная функция? Есть -- пользуйся на здоровье.
Потерял нить тезиса.


Библиотечная функция как средство повысить надежность (раз уж о ней зашла речь).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 14:30 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Wlad писал(а):
Абажьжите!
А давайте БУКВАЛЬНО (вот, кстати, одно из последствий НЕПЕРЕВОДА ключевых слов, использование слов чужого языка и потери изначального смысла слов :о) )


Еще один филолог. Ключевое слово должно быть коротким. Описание языка разъясняет все подробно.

Wlad писал(а):
Абажьжите!
Первожу:
ДЛЯ КАЖДОГО (БЕЗ ИСКЛЮЧЕНИЙ) элемента из заданной коллекции ...
Дальше надо?...


И где ты там увидел "without exceptions"? Дальше, если тебе интересно, можешь во всех подробностях перевести слово "FOR" или слово "DO".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 14:37 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Wlad писал(а):
И где ты там увидел "without exceptions"?

Ууууууу... Тяжело.
Vlad писал(а):
Еще один филолог.Ключевое слово должно быть коротким. Описание языка разъясняет все подробно.

Форт - классный язык. Серьёзно. Вот только одна беда у него было в своё время. Стандарта не было.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Об одной задаче из ЕГЭ
СообщениеДобавлено: Среда, 30 Май, 2007 16:37 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Vlad писал(а):
info21 писал(а):
Снобол-4. Книжка была переведена.

Significant Language Features
Цитата:
* String Manipulation Operations - has several of these operations which allow a string to be tested for contents and make replacements in the string.
* Pattern Matching- involves examining substrings, for the occurrences of specified substrings. Substrings are also known as patterns.
* Dynamically typed - SNOBOL4 has no type declarations and no restrictions on the data type of the value of any variable.
* Interpretive language - The compiler translates the program into a notation that the interpreter can easily execute.


Да, наверное для 60-х годов прошлого сатолетия этот язык был интересен. Про марковские цепи ничего не нашел.

Это язык обработки строк, предок Perl'а. Интересное отличие -- backtracking.

Это и все, что понимается под марковскими языками?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Май, 2007 22:10 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad, по поводу "выпрыгивания" - дело в конечном счете не в нем самом, а в том, что для любого алгоритма посложнее линейного посика "выпрыгивание" является индикатором, лакмусовой бумажкой, что алгоритм выстроен неудачно. Если в процессе построения алгоритма вдруг нужен брейк - это сигнал к тому, чтобы еще раз все выверить и переписать. Прокрутив всю совокупность условий и инвариантов.
"Попрыгучий" алгоритм вообще не поддается формальному верификации. С другой стороны, формальная верификация вещь громоздкая и слабоприменимая задним числом; удобен именно формальный синтез, когда обоснование прокручивается в уме до написания кода. С третьей стороны, при формальном синтезе невозможно получить алгоритм с бреком. С какой стороны не верти - не нужен брейк в базовых циклах.
Вполне разумно в промышленном языке держать отдельную конструкцию с явным прерыванием, как в КП LOOP - EXIT - END. Однако нужна она крайне редко, преимущественно в сложном коде обработки системных событий и т.п. Мне лично понадобилась всего раза 4 на моей памяти...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 02:42 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
PGR писал(а):
Из статьи Компьютерры:
Цитата:
Рефал - функциональный язык. Программа на Рефале определяет алгоритм, а выглядит как декларация отношения между элементами ввода и вывода.



Я бы Компутерре особо доверять не стал.
Они же никогда не слыхали про марковскую парадигму. Только про функциональную. Вот и приткнули. Впрочем, я тоже с Рефалом знаком только в воспоминании о докладе разработчика году в 82м в МГУ на семинаре по символической алгебре. В Белоруссии хотели процессор сделать. Мое воспоминание -- что там марковость заложена. И скорее всего, это синтетический язык.

Мало работают -- так новую парадигму себе в голову привить -- дело нетривиальное. Посмотрите вон на функциональную. Помню, что научиться строить алгоритмы для SCHOONSCHIPа было не вдруг.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 02:44 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Марковские цепи -- из математической статистики.
А тут "алгорифмы Маркова".
Марковых было больше одного.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 08:43 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Vlad, по поводу "выпрыгивания" - дело в конечном счете не в нем самом, а в том, что для любого алгоритма посложнее линейного посика "выпрыгивание" является индикатором, лакмусовой бумажкой, что алгоритм выстроен неудачно.


Лакмусовая бумажка - это вложенные циклы и if'ы. Flat is better than nested (c) Tim Peters. Не говоря уже о вложенных циклах с невообразимыми условиями только для того, чтобы вовремя "выпрыгнуть".

Илья Ермаков писал(а):
"Попрыгучий" алгоритм вообще не поддается формальному верификации.


У меня дежавю, что именно ты это уже говорил, а обосновать (применительно к break) не смог. Впрочем это не так важно. Сколько своих программ лично ты формально верифицировал (которые без break)? Если ноль, то практическая ценность возможности формальной верификации (даже если предположить, что она и проще для программы без break) стремится к нулю. А вот читаемость - вещь вполне осязаемая и непосредственно связанная с количеством допускаемых багов. И я тебе могу привести кучу примеров (начиная с пресловутого foreach), где break или return намного нагляднее и читабельнее флажков и т.п. в условиях циклов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 08:53 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
info21 писал(а):
А тут "алгорифмы Маркова".
Марковых было больше одного.


Ну по "алгорифмам" в сети что-то есть, а вот по языкам и их отличительным особенностям (ради которых их можно изучить) - нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 09:11 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
У меня дежавю, что именно ты это уже говорил, а обосновать (применительно к break) не смог. Впрочем это не так важно. Сколько своих программ лично ты формально верифицировал (которые без break)?

Я не пишу ни одного цикла, не прокрутив в уме его обоснование и совокупность условий на него. При таком стиле кодирования количество ошибок в алгоритмике стремится к нулю, а уверенность в надежности серьезно повышается. 70% циклов кода укладываются в несколько базовых алгоритмических схем с WHILE, вот причина держаться в этих рамках, вместо ваяния индивидуальных велосипедов с FOR-BREAK для каждого случая, пусть и более коротких.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 09:38 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Vlad писал(а):
Сколько своих программ лично ты формально верифицировал (которые без break)?

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


Тем не менее, такой стиль не является формальной верификацией. И какое отношение к нему имеют break/return - не понятно (понятно только твое личное убеждение, что break/return тебе мешают).

Илья Ермаков писал(а):
70% циклов кода укладываются в несколько базовых алгоритмических схем с WHILE, вот причина держаться в этих рамках, вместо ваяния индивидуальных велосипедов с FOR-BREAK для каждого случая, пусть и более коротких.


Я тут еще подумал... Возможно такой стиль неявно диктуется отсутствием в языке аналогов finally и деструкторов. Отсюда параноидальное стремление иметь одну точку выхода из блока.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 10:11 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Vlad писал(а):
Я тут еще подумал... Возможно такой стиль неявно диктуется отсутствием в языке аналогов finally и деструкторов. Отсюда параноидальное стремление иметь одну точку выхода из блока.


Кроме того, поскольку отсутствие локальных переменных все равно вынуждает тащить внутренности цикла "наверх", то и появление этих перемнных в условии цикла не кажется таким страшным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 10:28 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
info21 писал(а):
PGR писал(а):
Из статьи Компьютерры:
Цитата:
Рефал - функциональный язык. Программа на Рефале определяет алгоритм, а выглядит как декларация отношения между элементами ввода и вывода.

Я бы Компутерре особо доверять не стал.

Это статья самого автора Рефала :wink:
http://offline.computerra.ru/2001/402/10900/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 11:30 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Тем не менее, такой стиль не является формальной верификацией. И какое отношение к нему имеют break/return - не понятно (понятно только твое личное убеждение, что break/return тебе мешают).

Такой стиль называется формальным синтезом - т.к. сначала строится обоснование, а затем код. Дает тот же эффект, что верификация, но при этом не увеличивает время на кодирование (у меня при таком стиле написания выход кода ~2,5-3 тыс. строк за месяц, и то при не совсем полном рабочем дне. При этом код вообще не содержит ошибок, связанных с построением циклов.)

Наличие одного входа - одного выхода связано с тем же самым, код становится понимаемым и читаемым. Ничего не стоит понять те же пресловутые "вложенные циклы и ифы", когда действует правило одного выхода, и программист просто вынужден работать в рамках фиксированных алгоритмических схем. Если эти схемы знать, то каждый WHILE читается как единое целое, как будто тот же самый библиотечный вызов. А написание 90% кода превращается из "искусства", которое можно постичь только набиванием руки и опытом, в формальный процесс. У меня бывшие двоечники после месяца занятий сейчас самостоятельно выводят, к примеру, базовые алгоритмы сортировки (т.е. они получают только словесное описание принципа, без образца реализации) - с мелком на доске и сразу правильно, да еще и способны убедиться в этой правильности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 11:53 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Такой стиль называется формальным синтезом - т.к. сначала строится обоснование, а затем код. Дает тот же эффект, что верификация, но при этом не увеличивает время на кодирование


Ты можешь его называть как угодно, однако корректность программы он не гарантирует.

Илья Ермаков писал(а):
(у меня при таком стиле написания выход кода ~2,5-3 тыс. строк за месяц, и то при не совсем полном рабочем дне. При этом код вообще не содержит ошибок, связанных с построением циклов.)


Поднимите руку те, у кого есть ошибки, связанные с построением циклов! :)

Илья Ермаков писал(а):
Наличие одного входа - одного выхода связано с тем же самым, код становится понимаемым и читаемым.


Неправда. Я видел такой код в ББ. Он ужасен :)

Илья Ермаков писал(а):
Ничего не стоит понять те же пресловутые "вложенные циклы и ифы", когда действует правило одного выхода, и программист просто вынужден работать в рамках фиксированных алгоритмических схем.


Фиксированные алгоритимические схемы - звучит круто. Однако я видел на что это похоже в коде :)

Илья Ермаков писал(а):
Если эти схемы знать, то каждый WHILE читается как единое целое, как будто тот же самый библиотечный вызов.


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

Илья Ермаков писал(а):
А написание 90% кода превращается из "искусства", которое можно постичь только набиванием руки и опытом, в формальный процесс.


Да-да, наколбасить 100 строк формального кода вместо 10 читабельных - это то, к чему должен стремиться каждый програмист.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 12:43 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Спор в конечном счете ни к чему не приведет.
Ты судишь по себе и по многолетней ПРИВЫЧКЕ алгоритмировать - и алгоритмировать определенным образом, отсюда субъективность оценок и сравнений. Когда уже прошел тернистый путь по всем граблям и сам не преподаешь, то чувство "что по сути хорошо, что по сути плохо" сильно притупляется.

Мне приходится еще и все время сталкиваться с образованием либо с ПО-лабателями провинциального уровня. И я вижу, что народ не умеет алгоритмировать вообще. Любой алгоритм сложнее простого полного прохода для них превращается в клепание методом подбора и долгое гоняние в отладчике с подгонкой-подклепкой кусков. И что показательно - наблюдая из-за плеча за ходом "работы", можно увидеть примерно одно и то же: сначала пишется FOR от начала до конца. Затем долго соображается, чё делать дальше. Потом лепятся кучи IF с выпрыгиванием BREAK-ом. Затем долгая ругань типа "ну почему оно опять работать не хочет". Затем - дежучер.
Тех, кого когда-то учили программировать по тому же Кушниренко, на основе строгих схем, сразу выделяет из толпы на порядок большая грамотность.

По поводу "примеров жуткого кода на ББ" - мы когда-то это обсуждали, про куски синт. разбора строк. Такова селяви, что обработка текста в императиве всегда выглядит коряво в любом языке, тут ничего не попишешь. На то и есть высокоуровневые библиотеки - для ББ есть и регулярные выражения, и разборщики Babel/Cocor, так что не проблема :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 13:19 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2461
Откуда: Россия, Томск
Согласен с Ильей. Систематическое программирование привить важнее, чем манипуляции с компиляторами и оптимизацией.
Илья Ермаков писал(а):
Тех, кого когда-то учили программировать по тому же Кушниренко, на основе строгих схем, сразу выделяет из толпы на порядок большая грамотность.

А можно где-то это почитать в электронном виде? Всегда есть место для самосовершенстования.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 13:53 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
У меня электронной версии нет. Про сами книжки обсуждалось в соседней ветки про исполнители...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 14:30 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Специально для Vlad.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 14:57 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Сергей Губанов писал(а):
Специально для Vlad.


Спасибо за внимание :)

Сергей Губанов писал(а):
После того как испытуемый полностью облажался с линейным поиском


В смысле написал его через foreach, например?

Сергей Губанов писал(а):
я ему пишу его через WHILE в одну строчку и смотрю на его реакцию. Если испытуемый, не дай бог, после этого начинает со мной спорить - то это ещё хуже для него, чем его неспособность написать линейный поиск.


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

Сергей Губанов писал(а):
Программировать он в конце-концов может быть и научится, а вот нужен ли мне коллега, который будучи явно не прав лезет спорить - это большой вопрос...


Поверь, что коллега (тем более старший), глухой к чужим аргументам и не способный доказать свою правоту, ему тоже не нужен (если только испытуемый не тот самый "тупой кодер"). Ты так и не предоставил аргументы за WHILE vs foreach.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 197 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 10  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB