Философские Замечания

Философские Замечания

Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько «близок к машине», что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. С таким умыслом первоначально задумывался C. Второй цели идеально отвечает язык, который настолько «близок к решаемой задаче», чтобы концепции ее решения можно было выражать прямо и коротко. С таким умыслом предварительно задумывались средства, добавленные к C для создания С++.

Связь между языком, на котором мы думаем/программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. По этой причине ограничивать свойства языка только целями исключения ошибок программиста в лучшем случае опасно. Как и в случае с естественными языками, есть огромная польза быть по крайней мере двуязычным. Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их просто игнорируют. Например, серьезные ограничения концепции указателя заставляют программиста применять вектора и целую арифметику, чтобы реализовать структуры, указатели и т.п. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств.

Система типов должна быть особенно полезна в нетривиальных задачах. Действительно, концепция классов в С++ показала себя мощным концептуальным средством.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

1 Философские вопросы

Из книги автора

1 Философские вопросы Те, кто не понимает Unix, приговорены к ее созданию, несчастные. Подпись из сообщений группы новостей Usenet, ноябрь 1987года —Генри Спенсер 1.1. Культура? Какая культура? Это книга о программировании в операционной системе Unix, но в ней неоднократно


1 Философские вопросы

Из книги автора

1 Философские вопросы Те, кто не понимает Unix, приговорены к ее созданию, несчастные. Подпись из сообщений группы новостей Usenet, ноябрь 1987 года —Генри Спенсер 1.1. Культура? Какая культура? Это книга о программировании в операционной системе Unix, но в ней неоднократно


12.4.6. Дополнительные замечания

Из книги автора

12.4.6. Дополнительные замечания Поскольку библиотека Qt написана на C++, неизбежны некоторые идиомы, отражающие ограничения этого языка. Иногда перевод на Ruby не выглядит на 100% естественным, поскольку в Ruby аналогичные вещи делаются несколько иначе. Поэтому в ряде случаев


Замечания по Реализации

Из книги автора

Замечания по Реализации Во время написания этой книги все реализации С++ использовали версии единственного интерфейсного компилятора*. Он используется на многих архитектурах, включая действующие версии системы операционной системы UNIX на AT amp;T 3B, DEC VAX, IBM 370 и Motorolla 68000.


Исторические Замечания

Из книги автора

Исторические Замечания Безусловно, С++ восходит главным образом к C [7]. C сохранен как подмножество, поэтому сделанного в C акцента на средствах низкого уровня достаточно, чтобы справляться с самыми насущными задачами системного программирования. C, в свою очередь, многим


Замечания для Программистов на C

Из книги автора

Замечания для Программистов на C Чем лучше кто-нибудь знает C, тем труднее окажется избежать писания на С++ в стиле C, теряя, тем самым, некоторые возможные выгоды С++. Поэтому проглядите, пожалуйста, раздел «Отличия от C» в справочном руководстве (#с.15). Там указываются области,


4.5.4. Заключительные замечания

Из книги автора

4.5.4. Заключительные замечания Три решения задачи о восьми ферзях показывают, как к одной и той же задаче можно применять различные подходы. Мы варьировали также и представление данных. В одних случаях это представление было более экономным, в других — более наглядным и,


14.7. Заключительные замечания

Из книги автора

14.7. Заключительные замечания Нашу оболочку экспертной системы можно развивать в целом ряде направлений. В данный момент уместно сделать несколько критических замечаний и высказать предложения по усовершенствованию нашей программы.В нашей программе, являющейся


16.4. Заключительные замечания

Из книги автора

16.4. Заключительные замечания Нашего простого интерпретатора было вполне достаточно для того, чтобы проиллюстрировать некоторые идеи, лежащие в основе программирования в терминах образцов. Применение этого интерпретатора для более сложных приложений потребовало бы


Библиографические замечания

Из книги автора

Библиографические замечания Вопрос об ОО-декомпозиции рассматривается с использованием различных аргументов в [Cox 1990] (первоначально в 1986), [Goldberg 1981], [Goldberg 1985], [Page-Jones 1995] и [M 1978], [M 1979], [M 1983], [M 1987], [M 1988]. Метод проектирования сверху вниз отстаивается во многих книгах и статьях.


Библиографические замечания

Из книги автора

Библиографические замечания Иную точку зрения на взаимосвязь наследования и скрытия информации см. в [Snyder


Библиографические замечания

Из книги автора

Библиографические замечания Ряд материалов этой лекции представлен в докладах на форумах OOPSLA 95 и TOOLS PACIFIC 95, а также опубликован в [M 1996a]. Ряд обзорных материалов заимствован из статьи [M 1989e].Понятие автоматического выведения типов введено в [Milner 1989], где описан алгоритм


Библиографические замечания

Из книги автора

Библиографические замечания Проблемы перечислимых типов были изучены в работах [Welsh 1977] и [Moffat 1981]. Некоторые приемы, рассмотренные в этой лекции, впервые представлены в [M


Полезные замечания

Из книги автора

Полезные замечания Чтобы выяснить, какие устройства подключены к компьютеру, и убедиться, что эти устройства работают нормально, проще всего воспользоваться Диспетчером устройств. Некоторые внешние устройства операционная система подключает и показывает в Диспетчере