Бьерн Страуструп - Язык программирования С++. Вступление, глава 1
Страница 10. Философские замечания


 

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


    Язык программирования решает две взаимосвязанные задачи: позволяет
программисту записать подлежащие выполнению действия и формирует понятия,
которыми программист оперирует, размышляя о своей задаче. Первой цели
идеально отвечает язык, который очень "близок машине". Тогда со всеми ее
основными "сущностями" можно просто и эффективно работать на этом языке,
причем делая это очевидным для программиста способом. Именно это имели в
виду создатели С. Второй цели идеально отвечает язык, который настолько
"близок к поставленной задаче", что на нем непосредственно и точно
выражаются понятия, используемые в решении задачи. Именно это имелось в
виду, когда первоначально определялись средства, добавляемые к С.

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

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

 
« Предыдущая статья   Следующая статья »