Cтраница 3
В этом и следующем разделах мы рассмотрим более формальное определение декларативного и процедурного смыслов программ базисного Пролога. [31]
Одним из свойств, характеризующих программирование, является несопоставимость причин и следствий, которые они вызывают: ничтожная ошибка может привести к тому, что большая программа будет давать абсурдные результаты. Это в полной мере относится к Прологу, для которого опечатки при вводе символов иногда способны изменить смысл программы, но не дать при этом синтаксических ошибок. Первым этапом отладки должны быть внимательное чтение и тщательная проверка каждого слова в вашей программе. Наиболее очевидной ошибкой является погрешность в орфографии функтора структуры или имени переменной. [32]
Строки текста разбиваются на наименьшие единицы, имеющие смысл в языке, - лексемы. Программа является последовательностью лексических единиц; разделение на строки, пробелы и табуляция между лексическими единицами не меняют смысла программы. [33]
Возвращаясь непосредственно к программам передач, необходимо заметить, что суть усилий составителей сетки вещания заключается в творческой разработке именно содержательной части такого результата интеллектуальной деятельности, как программа. То, как соотносятся между собой передачи различных видов и жанров, какой категории слушателей и зрителей они адресованы, в какое время они передаются в эфир, - это и многое другое является результатом творческой деятельности. В этом смысле программы передач сродни сборникам и другим составным произведениям, которые признаются объектами авторского права в силу того, что включенный в них материал расположен по какой-либо оригинальной схеме. Как и по отношению к сборникам, применительно к программам радио - и телепередач правомерна постановка вопроса о недопустимости заимствования той оригинальной системы, которая положена в основу программы как совокупности определенных материалов, передаваемых в эфир. [34]
Хорошая программа должна быть легка для чтения и понимания. Следует избегать хитроумных программистских трюков, затемняющих смысл программы. Общая организация программы и расположение ее текста должны облегчать ее понимание. [35]
Ведь добавляя и удаляя предложения, мы фактически изменяем программу. Поэтому отношения, выполнявшиеся в некото - Гй ее точке, могут оказаться неверными в другой, разные моменты времени ответы на один и те же вопросы будут различными. Таким образом, большое количество обращений к assert и retract может затемнить смысл программы и станет трудно разобрать, что истинно, а что - нет. В результате поведение программы может стать непонятным, трудно объяснимым, к вряд ли можно будет ей доверять. [36]
Как уже говорилось, программа представляет собой либо составной оператор, либо блок. Соседние операторы программы разделены точками с запятой. Существует три способа включения в программы примечаний - текста, поясняющего людям смысл программы и отдельных ее частей, но не принимаемого во внимание при выполнении программы. [37]
Подчеркнем, что этот пример иллюстрирует принципиально иные трудности, нежели просто алгоритмическая неразрешимость. В случае алгоритмической неразрешимости Пролог-программы Р без отрицания мы все-таки могли сформулировать четкое определение логической семантики, а именно: на запрос а. И хотя соответствующего алгоритма, точно реализующего логическую семантику, не существует, смысл программы Р точно определен. [38]
С другой стороны, программа ( без ограничений на правила написания) является ярким примером взаимодействия. Действительно, кроме прямой передачи управления, присущей программам, - функционирование любого куска программы ( подпрограммы) может иметь боковой эффект, который вызывает взаимодействие с функционированием других кусков. Именно свойственное программам взаимодействие ( vs декомпозиция) приводит к известному факту о сложности ( а иногда и невозможности) понять смысл программы без знания о том, в каком окружении она будет использована, когда и как будут использованы ее результаты. [39]
Например, двенадцатиразрядное число 001110010010 может иметь различный смысл. Как таковое оно может участвовать в арифметической операции, например в сложении как слагаемое. Логически оно может сравниваться с другим числом с целью получения простого решения: ДА или НЕТ. Интерпретация слова определяется смыслом программы, в которой оно появляется. [40]
Объединение русских большевиков уже давно поставлено ими на очередь дня. Припомните громадное сочувствие, которым встречена была программная ( в смысле программы пашей внутрипартийной борьбы) резолюция 22 - х; припомните изданную печатно Московским комитетом ( октябрь 1904 г.) прокламацию 19-ти; наконец, почти всем комитетам партии известно, что в самое последнее иремя произошел и отчасти еще происходит ряд частных конференций между комитетами большинства 60, делаются самые энергичные и определенные попытки крепкого сплочения между собою комитетов большинства для отпора зарвавшимся бонапартистам в Совете, ЦО и ЦК. [41]
Достигнуть этой цели, как правило, бывает трудно для всякой программы независимо от ее размера. Начинающего программиста обычно беспокоит синтаксис статей и операторов КОБОЛа. Опытные программисты на самом деле часто довольно небрежно относятся к синтаксису, или грамматике, программы по двум причинам: во-первых, почти в любом компиляторе имеются мощные диагностические средства, обнаруживающие и распечатывающие почти каждую грамматическую ошибку, и, во-вторых, гораздо более опасны семантические ошибки или запутанный смысл программы. [42]
Новичков обычно пугает необходимость использования в зтом языке большого числа скобок. Вы убедитесь, что принятая в этом языке скобочная префиксная запись является одной из наиболее привлекательных черт этого языка, превращающих программирование в удовольствие. А за правильным соотношением числа скобок в современных версиях Лиспа следит сама машина. Благодаря скобкам тексты на Лиспе сравнительно легко читаются, облегчается понимание смысла программ. [43]
Важным направлением усовершенствования предложенной программы может быть эффективное использование емкости памяти системы. Так как значительная часть рабочего пространства не используется, особенно после окончания обучения, для представления этих областей необходим минимум емкости памяти. Некоторые методы реорганизации пространства измерения [8, 9] могут быть включены в логику рассмотренной выше обучающейся программы. Реорганизация может основываться на некоторых макроскопических наблюдениях, проводимых при начальной работе системы. Однако нужно заметить, что информация, введенная в память с помощью экстраполяции, или предполагаемые соотношения между переменными не являются на самом деле изученной информацией в смысле обучающейся программы, рассмотренной выше. Таким образом, сходимость процесса, включающего в себя подобного рода модификации, не может быть обеспечена, пока основная схема обучения осуществляет основную часть управления. Рассмотренные эксперименты показывают, что программа обучения может корректировать любую ошибочную информацию, которая окажется в памяти системы в результате прошлой работы. [44]
Мы сделали все возможное, чтобы провести борьбу партийным путем, мы с января месяца боремся за съезд, как единственный достойный партийный выход из невозможного положения. Теперь яснее ясного уже стало, что почти вся деятельность перебежавшего к меньшинству ЦК посвящена отчаянной борьбе против съезда, что Сонет идет на все самые невозможные и непозволительные проделки для оттягивания съезда. Совет прямо срывает съезд: кто не убедился еще в этом из чтения его последних постановлений в приложении к № № 73 - 74 Искры, тот увидит это из нашей ( вышедшей на днях) брошюры Орловского: Совет против партии. Теперь яснее ясного стало, что без объединения и отпора нашим так называемым центральным учреждениям большинство не может отстоять своей позиции, отстоять партийность в ее борьбе с кружковщиной. Объединение русских большевиков уже давно поставлено ими на очередь дня. Припомните громадное сочувствие, которым встречена была программная ( в смысле программы на - meii внутрипартийной борьбы) резолюция 22 - х; припомните изданную печатно Московским комитетом ( октябрь 1904 г.) прокламацию 19 - ти1, наконец, почти всем комитетам партии известно, что в самое последнее время произошел и отчасти еще происходит ряд частных конференций между комитетами большинства, делаются самые энергичные и определенные попытки крепкого сплочения между собою комитетов большинства для отпора зарвавшимся бонапартистам в Совете, ЦО и ЦК. [45]