Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Непейвода Н.Н. -> "Основания программирования " -> 15

Основания программирования - Непейвода Н.Н.

Непейвода Н.Н., Скопин И.Н. Основания программирования — Институт компьютерных исследований , 2002. — 919 c.
Скачать (прямая ссылка): osnovanprogramm2002.pdf
Предыдущая << 1 .. 9 10 11 12 13 14 < 15 > 16 17 18 19 20 21 .. 316 >> Следующая

1.2. МОДЕЛЬ ВЬЧЧИСЛЕНИЙ ФОН НЕЙМАНА И ТРАДИЦИОННЫЕ ЯЗЫКИ
35
одного языка варианте, причем специально разработанном с учетом осуе-ствимости построения Java-машины. Именно эти дополнительные условия (точнее — квалифицированное сужение исходного языка и довольно высокий уровень команд-конструкций языка Java-машины) в сочетании с практически унифицированной архитектурой массовых компь теров (см. ве) и с очень суественнм ростом чисто технических возмо ностей маин позволило воплотить старую идею в промышленной разработке13.
В контексте обсуждения традиционности языков необходимо рассмотреть вопрос о том, насколько далеко язык Java и Java-машина отходят от фон еймановской модели вчислений. Совместная разработка этих двух компонентов систем программирования для нового языка позволила прийти к достаточно практичным компромиссам, удовлетворить условиям выбранной схемы реализации, о которых шла речь выше.
словие (a) выполняется почти автоматически, и, т. к. нет ну ды заботиться о других язках, мо но сосредоточить внимание на том, чтобы обеспечить наиболее рациональное вло ение модели вчислений язка в модель машины. Что касается условия (b), то здесь ставка делалась на фактическое сходство архитектуры конкретных вычислителей, для которой уже накоплен опт программистских реений во многих типовых ситуациях. В результате отход от фон Неймановской модели вычислений в Java-системе, хотя и заметен, но не распространяется далее того, что у е бло при разработке трансляторов и языков. Достаточно сказать, что Java-машина построена на принципах, предложенных еще в 1963 году для организации вычислений в рабочей программе Ветстоунского компилятора для Algol 60 [68]. Схема, представленная в этом проекте, стала классической, и именно она воспроизводится в Java-машине, естественно существенно более развитой по сравнению с первоначальным прототипом14.
Важным новым качеством Java-машины является поддержка работы программиста с потенциально неограниченной память . ри вполнении кон-
13 Про новые условия данного проекта говорят обычно с неохотой или же вовсе замалчивают их. К примеру в книге «Java технология» успех старой идеи в новом проекте объясняется тем, что в прежние времена эту идею изучали в университетах, тогда как сегодня за нее взялись промышленники.
14 В этой связи уместно следующее замечание. Если бы книга [68] не была бы сегодня библиографической редкостью, то ее главу 2 «Рабочая программа» можно было бы рекомендовать в качестве первоначального введения для тех, кто желает изучить устройство Java-машины. После прочтения этого изложения понимание Java-машины окажется более глубоким.
36
1.
кретной программ на язке Java мо но не заботиться о том, что какая-то часть памяти перестает быть нужной. Система программирования сама сделает так, что та память, которая оказалась недоступной, а значит, ненужной, возвраается для использования в новх запросах. Такие ситуации выявля-тся в процессе вычислений, когда фактические ресурс , предоставляемые для размеения данных, требуется пополнить для переиспользования. В угоду этому соглашению принесен в жертву ряд приемов организации ручного переиспользования памяти, необходимых, например, при программировании на С.
одель вчислений Java в точности соответствует тому, что требуется от объектно-ориентированного программирования: активность памяти на уровне методов объектов, совместное описание данных и программ методов, отделение предоставляемых средств от их реализации. Все это сочетается с традиционной схемой управления вчислениями при описании алгоритмов обработки. Следует отметить, что разработчики языка не стали вкл чать в него средства, с трудом укладывающиеся в концептуальную схему Java-ма-шины и обычно, как, например, в С++, предоставляемые через довольно произвольные реализационные соглашения. Ориентация Java-машины на схему организации вычислений, ставшую классической со времен Algol 60, повлияла на язык в том отноении, что все, что выходит за рамки принятой модели, представлено таким образом, чтобы это мо но бло вычислить в период трансляции. К примеру, проблем статической типизации в данном языке решены радикально: в нем просто нет средств конструирования структурных типов, отличнх от классов объектов. В результате, язк стал лаконичнее по сравнени , например, с С++.
Благодаря совокупности отмеченных и других нововведений, которе в разрозненном виде появлялись в различных язках, программирование на Java, относящееся в целом к объектно-ориентированному стилю, обретает самостоятельность. арактерным для нового стиля является принципиальный отход от учета особенностей конкретных вычислителей в предполо е-нии (далеко не всегда оправданном!) о том, что используемые машины вы-полня т требуемые действия с приемлемым уровнем эффективности.
В значительной степени для того, чтобы перехватить инициативу у языка Java, и был создан C#, стремяийся сохранить в новой области эффективность С/C++.
1.3. БАЗОВЫЕ КОНСТРУКЦИИ ЯЗЫКА
37
§ 1.3. БАЗОВЫЕ КОНСТРУКЦИИ ЯЗЫКА
1.3.1. Линейные программы и их компоненты
Предыдущая << 1 .. 9 10 11 12 13 14 < 15 > 16 17 18 19 20 21 .. 316 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100