Здравствуйте, AVC, Вы писали:
AVC>Но меня и правда заинтересовало, что Кнут все программы написал на ассемблере. AVC>Следует ли отсюда, что он игнорировал функциональный подход?
Я думаю, он прекрасно знает про функциональный подход... Сдается мне, что в некоторых местах четвертого и пятого томов он-таки пропишет нечто функциональное...
Volume 4
Combinatorial Algorithms, in preparation. (Some parts are already available; see below.)
Present plans are to publish ``Volume 4'' as at least three separate subvolumes:
* Volume 4A, Enumeration and Backtracking
o 7. Introduction
o 7.1. Zeros and ones
o 7.1.1. Boolean basics
o 7.1.2. Boolean evaluation
o 7.1.3. Bitwise tricks and techniques
o 7.1.4. Representation of Boolean functions
o 7.2. Generating all possibilities
o 7.2.1. Combinatorial generators
o 7.2.2. Basic backtrack
o 7.2.3. Efficient backtracking
o 7.3. Shortest paths
* Volume 4B, Graph and Network Algorithms
o 7.4. Graph algorithms
o 7.4.1. Components and traversal
o 7.4.2. Special classes of graphs
o 7.4.3. Expander graphs
o 7.4.4. Random graphs
o 7.5. Network algorithms
o 7.5.1. Distinct representatives
o 7.5.2. The assignment problem
o 7.5.3. Network flows
o 7.5.4. Optimum subtrees
o 7.5.5. Optimum matching
o 7.5.6. Optimum orderings
o 7.6. Independence theory
o 7.6.1. Independence structures
o 7.6.2. Efficient matroid algorithms
* Volume 4C and possibly 4D, Optimization and Recursion
o 7.7. Discrete dynamic programming
o 7.8. Branch-and-bound techniques
o 7.9. Herculean tasks (aka NP-hard problems)
o 7.10. Near-optimization
o 8. Recursion
The material will first appear in beta-test form as fascicles of approximately 128 pages each, issued approximately twice per year. These fascicles will represent my best attempt to write a comprehensive account, but computer science has grown to the point where I cannot hope to be an authority on all the material covered in these books. Therefore I'll need feedback from readers in order to prepare the official volumes later.
Volume 4 Fascicle 2, Generating All Tuples and Permutations (2005), v+128pp. ISBN 0-201-85393-0
Volume 4 Fascicle 3, Generating All Combinations and Partitions (2005), vi+150pp. ISBN 0-201-85394-9
Volume 4 Fascicle 4, Generating All Trees; History of Combinationatorial Generation (2006), vi+120pp. ISBN 0-321-33570-8
Some "pre-fascicles" are also available for alpha-testing: Pre-Fascicle 0b (Boolean basics); Pre-Fascicle 0c (Boolean evaluation); I've put them online primarily so that experts in the field can check the contents before I inflict them on a wider audience. But if you want to help debug them, please go right ahead.
Translations of fascicles:
Romanian translation of Volume 4, Fascicle 2, by Cora Radulian: Generarea tuturor tuplurilor și permutărilor (Bucharest: Editura Teora, 2005), vii+144pp.
Volume 5
Syntactic Algorithms, in preparation.
* 9. Lexical scanning (includes also string search and data compression)
* 10. Parsing techniques
Estimated to be ready in 2015.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
L>>Hint: Я не спрашивал есть ли смысл (это слишком отвлеченное понятие, смысл можно найти даже в изучении суахили), я просил описать где в современной жизни можно применить знания, которые новичек гипотетически может почерпнуть из Кнута. LVV> LVV>Ну дык блин! Давайте повыкидываем из высшего образования (программистов) всю математику нафиг — ее тоже нельзя нигде применить в современной жизни...
Я никак не пойму, почему все постоянно куда-то в сторону уводят. Неужели так сложно ответить на вопрос прямо. Или признать, что не знаешь для чего это нужно.
Здравствуйте, Lloyd, Вы писали:
L>Hint: Я не спрашивал есть ли смысл (это слишком отвлеченное понятие, смысл можно найти даже в изучении суахили), я просил описать где в современной жизни можно применить знания, которые новичек гипотетически может почерпнуть из Кнута.
Давай конкретизируем? Какую ситуацию "современной жизни" ты предложишь к рассмотрению? И там уже поиграемся. А то боюсь, что мои собственные примеры тебя ни в чём не убедят.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Hint: Я не спрашивал есть ли смысл (это слишком отвлеченное понятие, смысл можно найти даже в изучении суахили), я просил описать где в современной жизни можно применить знания, которые новичек гипотетически может почерпнуть из Кнута.
ГВ>Давай конкретизируем? Какую ситуацию "современной жизни" ты предложишь к рассмотрению? И там уже поиграемся. А то боюсь, что мои собственные примеры тебя ни в чём не убедят.
Здравствуйте, Lloyd, Вы писали:
L>Я никак не пойму, почему все постоянно куда-то в сторону уводят. Неужели так сложно ответить на вопрос прямо. Или признать, что не знаешь для чего это нужно.
Нет, дружище. Дело в другом. Просто тот, кто получил фундаментальную подготовку, не представляет, как без неё вообще можно обойтись. Полное закоснение. А на самом деле, в этом суть фундаментальной подготовки: она просто "входит в жизнь", и в дальнейшем вполне может периодически казаться чем-то ненужным, абстрактным и т.п.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Геннадий Васильев wrote: > AVC>А что, написанию программ на высокоуровневых языках мышление > противопоказано? > > Нет, ты не понял. Я имел ввиду, что из Кнута нельзя просто взять, и > просто скопировать из него реализации программ. Нужно хоть чуть-чуть > головой поработать.
Желающие тупо копировать из псевдокода с заменой вызовов очевидных
процедур на сжатые человеческие описания (так идут примеры в книге
Кормена, Лейзерсона, Ривеста) к этому всячески приглашаются. А читается
приятно. При этом NP-полнота некоторых задач у Кнута, как я помню, не
освещена. Так что новичку для базовой подготовки "Алгоритмы: построение
и анализ" вполне неплохи. Хотя что это я... Флейм про преимущества
разных учебников по алгоритмы это в flame.comp.
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Я никак не пойму, почему все постоянно куда-то в сторону уводят. Неужели так сложно ответить на вопрос прямо. Или признать, что не знаешь для чего это нужно.
ГВ>Нет, дружище. Дело в другом. Просто тот, кто получил фундаментальную подготовку, не представляет, как без неё вообще можно обойтись. Полное закоснение. А на самом деле, в этом суть фундаментальной подготовки: она просто "входит в жизнь", и в дальнейшем вполне может периодически казаться чем-то ненужным, абстрактным и т.п.
Здравствуйте, LaptevVV, Вы писали:
LVV> LVV>Ну дык блин! Давайте повыкидываем из высшего образования (программистов) всю математику нафиг — ее тоже нельзя нигде применить в современной жизни...
Угу, воинствующий "практицизм" и не до такого доведёт. "Всё уже придумано до нас — нужно только крутиться пошустрее." А потом начинают выдавать КНФ за китайскую грамоту.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Lloyd, Вы писали:
L>То есть все-таки второе?
Вот же ж неугомонный. Хорошо, пример из моей практики (первое, что в голову пришло). На заре программистской деятельности пришлось оптимизировать сортировку в одной СУБД. Подошла комбинация многопутевой сортировки слиянием + быстрая сортировка в памяти. Оценка алгоритмов и сами описания — как раз были почерпнуты в своё время из Кнута. Другой пример — распределения памяти. Думаешь, Александреску тут в голове колонны? Щаз! Открываем Кнута и смотрим.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Lloyd, Вы писали:
L>Может и убедят. Ты в какой области работаешь?
В профиле всё сказано.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Ещё были интересные игрища с генерацией случайных чисел. Развлекись сам, напиши ГСЧ с равномерным распределением.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Вот же ж неугомонный. Хорошо, пример из моей практики (первое, что в голову пришло). На заре программистской деятельности пришлось оптимизировать сортировку в одной СУБД. Подошла комбинация многопутевой сортировки слиянием + быстрая сортировка в памяти. Оценка алгоритмов и сами описания — как раз были почерпнуты в своё время из Кнута.
Это был единичный случай за всю вашу деятельность? Кстати, а когда это было?
ГВ>Другой пример — распределения памяти. Думаешь, Александреску тут в голове колонны? Щаз! Открываем Кнута и смотрим.
Что в очередной раз подтверждает мою точку зрения. Быть можно дельным человеком, и не думать о Кнуте.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Lloyd, Вы писали:
L>>Может и убедят.
ГВ>Ещё были интересные игрища с генерацией случайных чисел. Развлекись сам, напиши ГСЧ с равномерным распределением.
Геннадий, я не спорю, что Кнут хорош в качестве источника для всевозможных поводов подумать. Сам сейчас с этой целью "прохожу" SICP. Под сомнение ставиться лишь необходимость его прочтения для рядового программиста.
Здравствуйте, Lloyd, Вы писали:
L>Геннадий, я не спорю, что Кнут хорош в качестве источника для всевозможных поводов подумать. Сам сейчас с этой целью "прохожу" SICP. Под сомнение ставиться лишь необходимость его прочтения для рядового программиста.
Ты упрощаешь целеполагалание. "Рядовой программист" — это клеймо, ругательство. Я всё таки исхожу из того, что "попасть в 90% формально называющихся программистами" не может быть целью нормального человека. Ergo, делаем выводы.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Геннадий, я не спорю, что Кнут хорош в качестве источника для всевозможных поводов подумать. Сам сейчас с этой целью "прохожу" SICP. Под сомнение ставиться лишь необходимость его прочтения для рядового программиста.
ГВ>Ты упрощаешь целеполагалание. "Рядовой программист" — это клеймо, ругательство. Я всё таки исхожу из того, что "попасть в 90% формально называющихся программистами" не может быть целью нормального человека. Ergo, делаем выводы.
Здравствуйте, Lloyd, Вы писали:
L>Это был единичный случай за всю вашу деятельность?
Нет, не единичный. Потом были ещё вариации на эту тему в генераторах отчётов...
L>Кстати, а когда это было?
12 лет назад. Только какая разница? Я и сейчас время от времени сталкиваюсь с чем-то похожим. Думаешь, что-то кардинально поменялось за истёкшие 12 лет? Бу-га-га-га-га!
ГВ>>Другой пример — распределения памяти. Думаешь, Александреску тут в голове колонны? Щаз! Открываем Кнута и смотрим.
L>Что в очередной раз подтверждает мою точку зрения. Быть можно дельным человеком, и не думать о Кнуте.
Дык, я и не спорю, что быть можно дельным человеком (и т.п. про 90%), только программистом он сможет называться лишь формально, по факту занятой жёрдочки.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Кстати, а когда это было?
ГВ>12 лет назад. Только какая разница? Я и сейчас время от времени сталкиваюсь с чем-то похожим. Думаешь, что-то кардинально поменялось за истёкшие 12 лет? Бу-га-га-га-га!
А по-моему за 12 лет очень сильно все поменялось. Если отбросить в сторону псевдо-элитарное фырканье по поводу формальности статуса большинства программистов, то это станет очевидно, т.к. категория "программист" оперделяется именно по этому большинству.
ГВ>>>Другой пример — распределения памяти. Думаешь, Александреску тут в голове колонны? Щаз! Открываем Кнута и смотрим.
L>>Что в очередной раз подтверждает мою точку зрения. Быть можно дельным человеком, и не думать о Кнуте.
ГВ>Дык, я и не спорю, что быть можно дельным человеком (и т.п. про 90%), только программистом он сможет называться лишь формально, по факту занятой жёрдочки.
Здравствуйте, Lloyd, Вы писали:
L>Если отбросить в сторону псевдо-элитарное фырканье по поводу формальности статуса большинства программистов, то это станет очевидно, т.к. категория "программист" оперделяется именно по этому большинству.
Ну да, приходится сталкиваться с тем, что смысл термина "программист" девальвирован. Я по этому поводу как раз Киплинга тебе и процитировал. В одних джунглях живём, но это ещё не повод равняться на Бандар-логов.
ГВ>>>>Другой пример — распределения памяти. Думаешь, Александреску тут в голове колонны? Щаз! Открываем Кнута и смотрим. L>А я не про 90%-ов.
А обо что тогда?
Кстати, в твоих рассуждениях (и им подобных) есть одна ошибка: нельзя путать характер текущей работы, то бишь, должностных обязанностей, и уровень образования, которому сопутствует готовность решать задачи определённого круга. "Гуру" вполне может время от времени заниматься киданием компонентов на формочки, но сие не означает, что можно стать "гуру", просто кидая компоненты на формочки.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Если отбросить в сторону псевдо-элитарное фырканье по поводу формальности статуса большинства программистов, то это станет очевидно, т.к. категория "программист" оперделяется именно по этому большинству.
ГВ>Ну да, приходится сталкиваться с тем, что смысл термина "программист" девальвирован. Я по этому поводу как раз Киплинга тебе и процитировал. В одних джунглях живём, но это ещё не повод равняться на Бандар-логов.
Я не предлагаю ни на кого равняться.
Просто есть программисты как совоупность людей зарабатывающая на жизнь написанием программ. Из того, что тебя не удовлетворяет их средний уровень не следует, что они автоматом переходят в категорию не-программистов.
ГВ>>>>>Другой пример — распределения памяти. Думаешь, Александреску тут в голове колонны? Щаз! Открываем Кнута и смотрим. L>>А я не про 90%-ов.
ГВ>А обо что тогда?
ГВ>Кстати, в твоих рассуждениях (и им подобных) есть одна ошибка: нельзя путать характер текущей работы, то бишь, должностных обязанностей, и уровень образования, которому сопутствует готовность решать задачи определённого круга. "Гуру" вполне может время от времени заниматься киданием компонентов на формочки, но сие не означает, что можно стать "гуру", просто кидая компоненты на формочки.
Геннадий, вы мне приписываете то, что я не говорил. Мой мессидж был в том, что если человек большую часть своего времени занимается (будет заниматься) бросанием компонент на формочки, то чтение Кнута не ест самый эффективный способ времяпрепровождения.
Здравствуйте, Lloyd, Вы писали:
L> Мой мессидж был в том, что если человек большую часть своего времени занимается (будет заниматься) бросанием компонент на формочки, то чтение Кнута не ест самый эффективный способ времяпрепровождения.
На Кнуте свет клином не сошёлся, он не является таким уж незаменимым, вместо него есть и другие источники и курсы, может быть не сведённые в один цикл. Но откуда вы знаете чем будет заниматься человек? И потом, с чего вы взяли, что 10% можно отбрасывать, этих 10% вы учить не собираетесь так что-ли? Или вы собрались указывать студентам: ты, ты, ты, ты, ты, ты, ты, ты и ты будете бросать компоненты на формочки, а тебя будем учить по всем правилам? Ну так радуйтесь, вся система образования похоже двигается в сторону: есть деньги у папы -- будешь элитой, нет -- в лучшем случае бросай компоненты на формочки.