Для этой цели часто применяется MD5. Великолепное введение в чудесный мир криптографии – книга [Sch95]
Все программы становятся унаследованными, как только они написаны.
Генеральная общая лицензия GNU [URL 57] является разновидностью легального вируса, который используется разработчиками программ с открытым текстом для защиты своих (и ваших) прав. Стоит уделить время ее изучению. Она говорит о том, что пользователь может использовать и модифицировать программы с генеральной общей лицензией, но если он распространяет модифицированные программы, то они подлежат соответствующему лицензированию (и маркируются как таковые), а исходный текст должен быть открыт. Это и есть часть вируса – если ваша программа создается на основе лицензированной программы, то она также подлежит лицензированию. Тем не менее, пользователь не ограничен никоим образом при использовании инструментальных средств – право собственности и лицензирование программ, разработанных при помощи указанных средств, находятся на усмотрении пользователя.
В идеальном случае используемая оболочка должна иметь те же клавиатурные привязки, что и редактор. Например, Bash поддерживает клавиатурные привязки редакторов vi и emacs.
Подобным образом разработано ядро Linux. В данном случае имеются разработчики, разбросанные географически, многие из которых работают над одними и теми же фрагментами текста. Опубликован перечень установочных параметров (в данном случае для редактора Emacs), содержащий описание требуемого стиля отступов.
В книге используется английская аббревиатура SCCS (заглавные буквы), которая обозначает системы управления исходным текстом вообще. Помимо этого, существует также особая система управления, обозначаемая sees (строчные буквы), изначально выпущенная фирмой AT&T вместе с Unix System V.
Почему «резиновый утенок»? Один из авторов книги, Дэйв Хант, учился в лондонском Империал колледже и много работал совместно с аспирантом, которого звали Грег Паг и которого Д. Хант считает одним из лучших известных ему разработчиков. На протяжении нескольких месяцев Грег носил при себе крохотного желтого резинового утенка, которого он ставил на край монитора во время работы. Прошло некоторое время, пока Дэйв не отважился спросить…
В оригинале router обозначает не маршрутизатор ЛВС, а фрезерный станок.
Как насчет создания текста из схемы БД? Существует несколько способов. Если схема содержится в плоском файле (например, операторы create statements), тс синтаксический анализ и генерацию исходного текста можно провести при помощи относительно несложного сценария. В качестве альтернативного способа предлагается следующий: при использовании инструментального средства для создания схемы непосредственно в самой БД необходимо иметь возможность извлечения нужной информации непосредственно из словаря БД. В языке Perl имеются библиотеки, обеспечивающие доступ к большинству основных БД.
Концепция частично основана на ранней работе Дейкстры, Флойда, Хоара, Вирта и др. Более подробная информация о самом языке Eiffel содержится в сети Интернет, см. [URL 10] и [URL 11].
В языках программирования, имеющих своей основой язык С, можно использовать препроцессор или конструкцию с условными операторами с тем, чтобы указанные утверждения не носили обязательного характера. Во многих разработках происходит отключение генерации текста программы для макроса assert при установленном (или сброшенном) флажке этапа компиляции. Можно также поместить текст программы в пределах условного оператора if с постоянным условием, которое многие компиляторы (включая наиболее распространенные Java-системы) отбросят в ходе оптимизации.)
Опасности, возникающие из-за связанности в программе, обсуждаются в разделе «Несвязанность и закон Деметера».
Если n объектов знают друг о друге вес, то при изменении одного-единственного объекта возникает потребность в изменении оставшихся n – 1 объектов.
На мирных (читай – глупых) птиц не действовало даже то, что поселенцы забивали их до смерти спортивными битами.
В книге не рассматриваются подробности параллельного программирования; в хорошем учебнике по информатике даются его основы, включая диспетчеризацию, взаимоблокировку, зависание процесса, взаимоисключение/семафоры и т. д.
Читать дальше