Очерки истории отечественной программной инженерии в 1940-е – 80-е годы - [11]

Шрифт
Интервал

Теперь приверженцы языка ассемблер утверждали, что их код самый быстрый, а любители языков высокого уровня утверждали, что они напишут программу быстрей, чем самый лучший программист на языке ассемблер. Однако программы на языках высокого уровня занимали больший объем памяти и работали медленнее. В вычислительных задачах победила в основном скорость разработки и «удобство» языка программирования для определенного класса задач.

Ассемблер не ушел из практики, когда необходимо было создавать эффективные по объему программы реального времени высокой производительности и занимающие минимальный объем памяти (см. главу 4). В 60-е – 70-е годы большинство программных продуктов в оборонной промышленности для мобильных и бортовых ЭВМ создавались на ассемблерах, адаптированных на архитектуру соответствующих машин. Только в 80-е годы в связи с ростом ресурсов специализированных машин начали использоваться алгоритмические языки высокого уровня, несмотря на возможное расширение программ при трансляции, по сравнению с программами, разработанными на ассемблере.

С середины 50-х годов во всех странах, производивших вычислительную технику, начался бурный процесс «языкотворчества» — создание нескольких сотен проблемно-ориентированных языков [1, 4]. Многим программистам казалось, что небольшие улучшения языков программирования способны радикально повлиять на разработку и качество программ, на использование скудных ресурсов ЭВМ. Однако это требовало создания соответствующих трансляторов и средств отладки, вследствие чего энтузиазм языкотворчества постепенно угас. Сложной задачей для системных программистов того времени было создание трансляторов для конкретных типов машин. Создание каждого транслятора с машинно-независимого языка программирования считалось крупным научным и практическим достижением. Большое число различных типов машин и различных языков требовало трудоемкой работы высококвалифицированных программистов и математиков по разработке трансляторов. Соответственно, возникла необходимость создания небольшого числа стандартизированных языков и программно-преемственных семейств вычислительных машин. Это потребовало глубоких теоретических исследование в теории алгоритмов, схем программ, теории формальных грамматик.

В СССР в 60-е годы был создан алгоритмический язык РЕФАЛ, в основе которого лежала теоретическая модель процесса, реализуемого нормальными алгоритмами Маркова. Его использование в нашей стране позволило создать ряд оригинальных программных продуктов, не имевших аналогов за рубежом. Однако РЕФАЛ испытал судьбу многих отечественных находок. Сходная судьба была у языков программирования семейства Аналитик, созданных в Институте кибернетики АН УССР для ЭВМ серии «МИР». Эти машины, по существу, были первыми персональными ЭВМ (к сожалению, тогдашняя элементная база не позволила свести их габариты к настольным). Однако, несмотря на передовые принципы, заложенные в структуру и функции языков семейства Аналитик, они также не стали достоянием мирового сообщества программистов, хотя иностранные эксперты достаточно высоко оценивали достижения программирования в СССР [4].

Исследования в области параллельного программирования в СССР начались в середине 60-х годов, когда в Институте математики СО АН СССР (Новосибирск) и в Московском энергетическом институте возникли первые коллективы, заинтересовавшиеся теорией параллельных процессов в вычислительных системах, состоящих из однородных или неоднородных машин [4]. Первые монографии по теории вычислительных систем и параллельных вычислений вышли в нашей стране с большим опережением аналогичных изданий за рубежом. Отечественные специалисты первыми в мировой науке дали постановку и предложили решения таких задач, как сегментация алгоритмов и программ, планирование выполнения больших программ на вычислительных системах, динамическое диспетчерование потока программ и сегментов программ, асинхронная организация протекания процессов. В это время было предложено несколько оригинальных моделей для параллельных вычислений, заново открытых потом в США и других странах.

В 1953-х годах Л.В. Канторович разработал технологию крупноблочного программирования, которая давала обозримое описание крупных программ и обеспечивала формализацию, достаточную для исследования синтаксических структур программ и создания программирующих программ [4]. Идеи, высказанные в этих работах, предшествовали развитию программной инженерии. Работа школы протекала весьма активно в 1950 – 60-е годы. Характерной особенностью крупноблочных систем являлось то, что они оперировали не с индивидуальными числами и символами, а с величинами – укрупненными агрегированными информационными объектами. Такие укрупненные структуры данных (матрицы, векторы, последовательности, деревья, схемы и т. д.) выступали как целое в вычислительных планах; стандартные способы обработки отдельных компонентов выполнялись автоматически на нижних уровнях. Это вносило иерархическую структуру в языки программирования, освобождая верхние уровни от ненужной детализации. Существенно, что вычислительный процесс мыслился при этом также «объемным», протекающим одновременно, либо попеременно на каждом из этих уровней. Громоздкие и трудоемкие вычисления часто чрезвычайно упрощались при переходе на другой уровень. Представлялось, что в разумной стратегии переходов с одного уровня на другой кроется значительный резерв для повышения экономики вычислений. На этой же уровневой основе была создана оригинальная теория и методология трансляции, гибко сочетающая компиляцию и интерпретацию.


Рекомендуем почитать
Зачем мужчинам соски?

Замечали ли вы, что все гости, узнав, что среди приглашенных на праздник или вечеринку есть сотрудник медицинского учреждения, тут же вспоминают тысячи вопросов, которые постеснялись задать своему лечащему врачу? И вот через некоторое время бедняга уже осматривает чью-то родинку, пытается объяснить этиологию головных болей у хозяйки и найти ответы на эпизодические: «Правда ли, что градус нужно только повышать?», «Толстеют ли от спермы?», «Почему какашки плавают?». И это только начало… Вскоре оказывается, что нескольких лет медицинского образования и практики вовсе недостаточно, чтобы утолить жажду знаний окружающих. Писатель и сценарист Марк Лейнер и доктор Билли Голдберг решили исправить эту ситуацию и помочь сотням докторов, которые вместо пиццы поглощают на вечеринке чужие порождения затуманенного алкоголем сознания.


Горизонты техники для детей, 1963 №12 (19)

Польский ежемесячный научно-популярный журнал для детей.


Горизонты техники для детей, 1963 №1 (8)

Польский ежемесячный научно-популярный журнал для детей.


Мозг: прошлое и будущее

Wall Street Journal назвал эту книгу одной из пяти научных работ, обязательных к прочтению. Ученые, преподаватели, исследователи и читатели говорят о ней как о революционной, переворачивающей представления о мозге. В нашей культуре принято относиться к мозгу как к главному органу, который формирует нашу личность, отвечает за успехи и неудачи, за все, что мы делаем, и все, что с нами происходит. Мы приравниваем мозг к компьютеру, считая его «главным» в нашей жизни. Нейрофизиолог и биоинженер Алан Джасанов предлагает новый взгляд на роль мозга и рассказывает о том, какие именно факторы окружающей среды и процессы человеческого тела формируют личность и делают нас теми, кто мы есть.


Книга на книжной полке

Тема, которую исследует автор, — книги и книжные полки. Он задается вопросом: так ли очевидно и неизбежно современное положение вещей, когда книги стоят вертикально на горизонтальных полках? Читатели проследят, как свиток времен Античности превращается в кодекс, а тот, в свою очередь, — в книгу, к которой мы привыкли, и узнают, как в разные времена решалась задача хранения книжных собраний. Это щедро проиллюстрированная и увлекательно написанная книга о книге — о том, как она появилась на свет и как мы научились хранить ее.


Знание-сила, 1997 № 09 (843)

Ежемесячный научно-популярный и научно-художественный журнал для молодежи.