ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
2 июня
112139 Топик полностью
bialix_ (04.02.2008 17:24, просмотров: 191) ответил Evgeny_CD на Визуализатор смысла исходников. Версия lite. Продолжение старых мыслей о VMDL.
дабы заслюнявить это обсуждение окончательно хочу привести цитату из SICP, предисловие к первому изданию. SICP валяется в буках, недавно заливал. Можете прочесть сами. Даю большой кусок, чтобы не было ощущения, что вырываю из контекста. Я не стану выделять значимые места с моей точки зрения, хотя очень хочется. «Структура и интерпретация компьютерных программ» — это вводный курс по ин- форматике в Массачусетском Технологическом институте (MIT). Он обязателен для всех студентов MIT на специальностях «электротехника» и «информатика», как одна из че- тырех частей «общей базовой программы обучения», которая включает еще два курса по электрическим схемам и линейным системам, а также курс по проектированию цифровых систем. Мы принимали участие в развитии этого курса начиная с 1978 года и преподава- ли этот материал в его нынешней форме начиная с осени 1980 года шестистам–семистам студентам в год. Большая часть этих студентов не имела почти или совсем никако- го формального образования в области вычислительной техники, хотя у многих была возможность общения с компьютерами, а некоторые обладали значительным опытом в программировании либо проектировании аппаратуры. Построение этого вводного курса по информатике отражает две основные задачи. Во- первых, мы хотим привить слушателям идею, что компьютерный язык — это не просто способ заставить компьютер производить вычисления, а новое формальное средство вы- ражения методологических идей. Таким образом, программы должны писаться для того, чтобы их читали люди, и лишь во вторую очередь для выполнения машиной. Во-вторых, мы считаем, что основной материал, на который должен быть направлен курс этого уровня, — не синтаксис определенного языка программирования, не умные алгоритмы для эффективного вычисления определенных функций, даже не математический анализ алгоритмов и оснований программирования, но методы управления интеллектуальной сложностью больших программных систем. Наша цель — развить в студентах, проходящих этот курс, хороший вкус к элементам стиля и эстетике программирования. Они должны овладеть основными методами управ- ления сложностью в большой системе, уметь прочитать 50-ти страничную программу, если она написана в хорошем стиле. Они должны в каждый данный момент понимать, чего сейчас не следует читать и что сейчас не нужно понимать. Они не должны испыты- вать страха перед модификацией программы, сохраняя при этом дух и стиль исходного автора. Все эти умения ни в коем случае не исчерпываются компьютерным программирова- нием. Методы, которым мы учим и из которых мы черпаем, одни и те же в любом техни- ческом проектировании. Мы управляем сложностью с помощью построения абстракций, скрывающих, когда это нужно, детали. Мы управляем сложностью путем установления стандартных интерфейсов, которые позволяют нам строить системы из единообразных, хорошо понимаемых кусков способом «смеси и стыковки». Мы управляем сложностью с помощью построения новых языков для описания проекта, каждый из которых концен- трирует внимание на определенных деталях проекта и уводит его от других.