nextupprevious

Next:1 Язык программирования Zonnon
Up:Введение
Previous:Рекомендации преподавателю и студенту


Дополнительная литература

Гл. 1  содержит полное описание языка Zonnon  для платформы .NET, подготовленное на основе доступных описаний его текущего состояния [38, 60]. Вопросам программирования для  платформы .NET посвящена обширная литература (см., например,  [24, 53, 57]) .

Приведенные в словаре (гл. 2) определения вполне достаточны для того, чтобы можно было понимать формулировки заданий (гл. 6). Однако для построения эффективного решения некоторых заданий может оказаться полезным знание некоторых свойств определяемых здесь математических объектов.

Многие из определяемых в индивидуальных заданиях понятий, а также вопросы построения эффективных алгоритмов для работы с ними обсуждаются в книгах [6, 15, 35, 45, 55, 59]. О графах более подробно можно узнать в книгах [26-27, 35, 44]. Из весьма обширной литературы, посвященной формальным грамматикам и вопросам синтаксического анализа программ, мы рекомендуем [5, 33, 36]. В них же можно найти дополнительную информацию об автоматных диаграммах.

Вопросы функциональных построений в алгебре логики и теории дизъюнктивных нормальных форм рассматриваются в [26].

Книга [55] содержит основы разработки и анализа алгоритмов вычислительной геометрии. Изложение основано на детальном рассмотрении конкретных геометрических задач и комбинаторных алгоритмов их эффективного решения. Рассматриваются вопросы геометрического поиска, построения выпуклых оболочек, решения задач близости и пересечения, а также алгоритмы геометрии прямоугольников.

Об играх полезно прочитать книги [4, 16, 50]. В книге [4] в увлекательной форме рассматриваются способы программирования различных занимательных игр и головоломок с числами, геометрическими фигурами и др. Изложение большинства игр и головоломок включает постановку задачи, требования, предъявляемые к ее решению, алгоритм, а также возможные пути его программной реализации. Книга [50] содержит специальную главу, посвященную играм и принятиям решений. В ней приводятся изящные и полные примеры игр, дается краткое описание математической модели игр и рассматриваются методы программирования игр, основанные на представлении игры в виде дерева.

Рекомендации по решению индивидуальных заданий составлены в основном по материалам книг [6, 20, 37]. Кроме этих книг более подробное освещение вопросов, полезных студенту и преподавателю при решении индивидуальных заданий, можно найти в книгах [8, 40, 48, 50, 55]. Общим принципам и этапам решения задач на ЭВМ, разработке и анализу алгоритмов посвящена книга [20]. В книге [50] демонстрируется подход к решению задач на ЭВМ на многочисленных примерах из теории графов, комбинаторики, теории случайных процессов, теории чисел. В книге [13] содержится большое число упражнений и задач по программированию, снабженных рекомендациями по широкому кругу вопросов, касающихся стиля написания программ, рациональных методов их разработки и оптимизации, стратегии отладки и тестирования.

В первой части книги [22] детально рассматриваются вопросы, связанные с анализом задач и конструированием алгоритмов методом пошагового уточнения; приводятся примеры, иллюстрирующие применение этого метода. В этом контексте рассматриваются и принципы структурного программирования, а приведенные примеры служат хорошей иллюстрацией тому, как программировать структурно. Фундаментальным вопросам конструирования корректных и изящных программ для ЭВМ посвящена также монография [24]. В ней методика доказательного программирования излагается на примере остроумных и поучительных задач по программированию. Хороший материал по доказательному программированию содержат книги [14, 19]. В них на многих конкретных примерах показывается, как разрабатывать алгоритм вместе с утверждениями, описывающими соотношения между значениями переменных в различных точках программ. Эти утверждения позволяют затем доказывать правильность алгоритмов. Основным принципам доказательства правильности программ посвящена книга [3].

В книге [42] описываются подходы к описанию семантики языков программирования применительно к задаче о доказательстве свойств программ с составными значениями, указателями и подпрограммами. Большой и детальный перечень описаний различных структур данных можно найти в книгах [8, 40, 43]. Разработке языковых средств абстракции данных, позволяющих хорошо структурировать программы, и исследованию понятия типа данных в программировании посвящена книга [23]. Описание языка высокого уровня для представления алгоритмов над сложно организованными данными имеется в книгах [5, 32, 35]. Методы разработки высоконадежных и эффективных программ с использованием специального языка проектирования программ представлены в книге [29].

Вопросы исчерпывающего поиска, порождения и представления комбинаторных объектов, подсчета и оценки количества элементов в конечных множествах, а также алгоритмы на графах детально излагаются в книге [55, 35]. Систематическое изложение результатов теоретических и прикладных исследований по построению и анализу быстрых алгоритмов для задач перебора, упорядочения и задач на графах содержится в книге [6]. Методы решения и анализ сложности алгоритмов для общей задачи линейного программирования и смежных с ней, включая потоковые задачи и ряд задач на графах, собраны в книге [51].

В книге [18] на многочисленных конкретных примерах и упражнениях ведется обучение технике оперирования с дискретными объектами и фундаментальным математическим методам, необходимым для досконального анализа программ. Исчисление сумм, рекуррентные соотношения, теория чисел, биномиальные коэффициенты, производящие функции, дискретная теория вероятностей и асимптотические методы -- вот наиболее важные темы этой книги.

Много полезных советов по организации тестирования и отладки программ можно найти в книгах [12, 13, 46, 47]. Сформулированные в этих книгах методы и принципы важны при разработке набора тестов, поиске и исправлении ошибок в программах.
 
 

Next:1 Язык программирования Zonnon
Up:Введение
Previous:Рекомендации преподавателю и студенту


© В.Н. Касьянов, Е.В. Касьянова, 2004