Cтраница 3
Сообщение ITC13271 говорит о том, что при совместном выполнении данных программ используется режим NOCOMPATIBLE, который указывает, что при вызове модулей ( в операторе 30 процедуры PR1), протранслирован-ных оптимизирующим транслятором, может возникнуть ошибка при использовании переменных типа указатель ( связанных с базированными переменными), так как их представление для отладочного и оптимизирующего трансляторов различно. Если в выполняемых программах программист использовал базированные переменные, необходимо при обращении к отладочному транслятору в команде PLIC указать режим COMPATIBLE. [31]
В отличие от NIL система Т содержит довольно маленькое ( около 600 строк) ядро, написанное не на языке Лисп. Используя хороший оптимизирующий транслятор, разработчики языка надеялись создать более производительную систему, чем путем реализации большей части системы вручную на машинном языке. Благодаря такому подходу система получилась легко переносимой. Техника раскрутки заметно облегчает как разработку самой системы, так и ее сопровождение. [32]
Большое внимание уделено программированию в в од а - вы вод а и отладке программ. Рассматриваются возможности оптимизирующего транслятора и его использование в разных режимах работы операционной системы. [33]
Диалоговый режим организуется в подсистеме диалоговой обработки ( ПДО) системы виртуальных машин ( СВМ), пакетный - в подсистеме БОС. Для функционирования оптимизирующего транслятора требуется не менее 1200 Кбайт памяти. [34]
Оптимизирующий транслятор позволяет получать объектные модули значительно лучшего качества, чем стандартный ( уровня F) и отладочный трансляторы. Основная цель оптимизации, выполняемой оптимизирующим транслятором, состоит в том, чтобы создать объектный модуль, для которого время выполнения и требования к памяти были бы по возможности минимальными. При этом сокращается время выполнения в среднем на 50 % по сравнению со стандартным транслятором. Как вторичный эффект оптимизации, во многих случаях уменьшается также и объем требуемой памяти. Время трансляции, если задан режим оптимизации, возрастает от 25 до 100 % п сравнению со стандартным транслятором. Однако при многократном выполнении программы, созданной оптимизирующим транслятором, этот недостаток не играет большой роли, а преимущества транслятора проявляются в полной мере. [35]
При решении задач по созданию встроенных систем, так же, впрочем, как и при решении задач системного программирования, одним из требований к языку программирования ( точнее, к самому языку программирования и к транслятору с этого языка программирования) является необходимость генерации очень хорошего ( в смысле эффективности) объектного кода. А это возможно лишь при использовании высококачественных оптимизирующих трансляторов с тех или иных языков программирования. Создание и отладка простого ( невысококачественного и неоптимизирующего) транслятора с языка программирования X, имеющего большой размер, по трудоемкости сравнимо с созданием высококачественного оптимизирующего транслятора с языка программирования Y, имеющего небольшой размер. Создание высококачественного оптимизирующего транслятора с языка Ада является поистине грандиозной задачей. [36]
Исходный модуль, отлаженный с помощью отладочного транслятора, находится в разделе LD010 библиотечного набора BMO. Необходимо транслировать и редактировать данный модуль с помощью оптимизирующего транслятора и поместить в личную библиотеку загрузочных модулей полученную рабочую программу. [37]
Так или иначе составители транслятора всегда стремятся сделать его возможно лучше ( быстрее, короче, с хорошим качеством рабочей программы и наибольшими удобствами для пользователя) в рамках времени, отведенного для выполнения работы. Однако, поскольку все эти цели одновременно недостижимы, особо выделяют оптимизирующие трансляторы, в которых предусмотрены дополнительные меры для повышения качества рабочей программы ( обычно прежде всего стремятся сократить время ее исполнения), и быстрые трансляторы, в которых приняты специальные меры для ускорения трансляции. [38]
Если программа состоит из нескольких программных единиц, то с режимом TEST следует транслировать только те из них, которые предполагается отлаживать с помощью отладчика. Объектные модули отлаженных программных единиц могут быть получены без режима TEST ( с помощью отладочного или оптимизирующего транслятора), но во время отладки они должны находиться в файлах типа TEXT. При вызове отладчика нужно указывать имена всех файлов, содержащих объектные модули. [39]
Система программирования ПЛ / 1 предназначена для решения широкого круга научных, инженерно-технических, экономических и других задач. СП ПЛ / 1 включает: язык программирования ПЛ / 1; отладочный транслятор ПЛ / 1; оптимизирующий транслятор ПЛ / 1; резидентную библиотеку; транзитную библиотеку; смешанную библиотеку; посредники для трансляторов. [40]
В ЕС ЭВМ имеются несколько версий трансляторов с одного и того же языка. Так, например, для языка фортран имеются три транслятора: от простейшего, способного идти на моделях с весьма ограниченными ресурсами памяти, до оптимизирующего транслятора, создающего программы, по эффективности не уступающие программам, составленным на ассемблере, но требующего для своей работы объема памяти не менее 256 Кбайт. [41]
Отладочный транслятор, обеспечивая высокую скорость обработки текста исходных программ, выявляет максимальное количество ошибок. Для такого транслятора качество генерируемого модуля является второстепенным. В результате работы оптимизирующего транслятора создается объектная программа, которая должна занимать минимально возможный объем памяти и обеспечивать быструю обработку объектного модуля. [42]
Математическое обеспечение машины Сгау-1, так же как и у ее предшественников машин фирмы CDC, форт-ранно-ориентировано. Это означает, что в качестве основного входного языка выбран фортран, наиболее интенсивно используемый в научных расчетах. Для машины Сгау-1 создан специальный оптимизирующий транслятор со стандартного фортрана, учитывающий специфику этой векторной машины. При некоторых условиях, наложенных на программу, данный транслятор обеспечивает конвеерный параллелизм и готовит объектные программы, эффективно использующие эти возможности машины. Ведутся работы над новой версией транслятора, который будет оптимизировать фортранные программы, составленные без каких-либо ограничений. [43]
Транслятор уровня G относится к категории отладочных трансляторов. Он позволяет включать в транслируемые программы специальные отладочные средства, имеет высокую скорость трансляции, однако эффективность получаемых программ не высока. Транслятор уровня Н относится к категории оптимизирующих трансляторов. Он позволяет получать высокоэффективные программы, однако имеет малую скорость трансляции и не использует никаких отладочных средств. Поэтому транслятор уровня Н обычно применяют для трансляции уже отлаженных программ, которые часто выполняются и требуют для своего выполнения много вре. [44]
Таким образом, закончилась диалоговая отладка программы, то есть исправлены синтаксические и семантические ошибки. Конечно, приведен очень небольшой пример, но он отражает суть диалоговой отладки. Наиболее рациональным путем последующего решения полученной программы является использование оптимизирующего транслятора. [45]