Cтраница 2
В ряде случаев, однако, именно такие отдельные возможности дают основной вклад в стоимость реализации языков программирования, часто увеличивая стоимость использования внешне не связанных с ними возможностей. Так, наличие в механизме управления памятью, имеющемся в языке Алгол 68, механизма сборки мусора приводит к тому, что остальные компоненты реализации языка Алгол 68 должны заботиться ( постоян но. Заранее никогда неизвестно, будет или нет использован механизм сборки мусора, но транслятор с языка Алгол 68 всегда должен предусматривать такую возможность. [16]
Двусвязанный список до ( а и после ( б добавления нового элемента. [17] |
Если для отведения динамических переменных используется определенный квант памяти ( а так обстоят дела в большинстве реализаций языка программирования Паскаль), то после работы программы в течение некоторого времени может возникнуть ситуация, когда выделять память уже не из чего. Парадокс: памяти более чем достаточно, но взять ее нельзя. [18]
Автор хотел бы еще раз подчеркнуть взаимосвязь между языками программирования и их реализациями: сформулированные выше критерии отражают не что иное, как необходимость глубокого понимания разработчиками языков программирования техники и технологии реализации языков программирования. [19]
Микропроцессор 80286 выполняет все команды МП 8086, а также ряд новых команд: команды загрузки и запоминания регистров дескрипторных таблиц, регистра слова состояния машины, регистра задачи; команды, расширяющие состав операций со стеком ( включение в стек и извлечение из стека содержимого группы регистров и др.); команды входа и выхода из процедуры, облегчающие реализацию языков программирования высокого уровня. [20]
В этом небольшом разделе мы смогли лишь слегка затро-нуть вопросы, относящиеся к структуре транслятора. Этот аспект реализации языка программирования, по-видимому, наиболее хорошо изучен. [21]
Реализация некоторого языка программирования должна помогать программисту обнаружить имеющиеся в программе ошибки. В частности, реализация языка программирования должна выявлять все отступления от его официального описания. Когда в программе найдена ошибка, диагностика должна быть такой, чтобы программист легко мог понять, где именно в программе она имеется. Реализация этого языка программирования должна обеспечивать программиста достаточным объемом посмертной информации, предоставляемой в удобочитаемом виде, а это означает, что программист не должен будет продираться через восьмеричный дамп памяти. [22]
Распараллеливание синтаксического анализа может осуществляться с помощью построения интеллектуальных терминалов, выполняющих распознавание языковых конструкций, вводимых с терминала. Наиболее применимы они при реализации языка программирования в режиме интерпретации. [23]
Этот программный продукт создан фирмой dBFast Inc. Он демонстрирует еще один способ реализации языка программирования СУБД dBaselll PLUS с помощью компилирующего подхода. [24]
Однако при таком подходе остается открытым вопрос, как оценивать транслятор, с некоторого языка программирования, если исследование его показало целесообразность проведения такой оценки. Рассмотрим наиболее важные критерии для оценки реализации языка программирования. [25]
Одним из популярных способов разделения функций является реализация языка программирования высокого уровня или каких-либо его частей на специализированном процессоре или процессорах. [26]
Микропрограммное моделирование вычислительной машины иногда называется эмуляцией. Похоже, что реализация с помощью микропрограммного моделирования программно-аппаратных вычислительных машин с языком высокого уровня приобретает большую популярность, как средство реализации языков программирования. К сожалению, ограниченный объем данной книги не позволяет детально исследовать эту тему. Список литературы для более глубокого ознакомления с данной областью приведен в конце главы. [27]
Конструкция языка программирования для вычислительной машины и взаимосвязь между конструированием языка и его реализацией являются двумя центральными темами этой книги. В течение сравнительно короткого периода, прошедшего со времени появления первой версии Фортрана в середине 50 - х годов, конструирование и реализация языков программирования были скорее искусством, чем наукой. [28]
Следующим критерием, которому должна удовлетворять реализация любого языка программирования, является то, что транслятор с любого языка программирования должен обеспечивать простой и эффективный интерфейс с окружением, в котором будут выполняться транслируемые им программы. В частности, это требование означает необходимость организации простого и эффективного интерфейса с файловой системой и внешними устройствами. Это требование к реализации языков программирования накладывает определенное требование на сами языки программирования - необходимость отражения в них наличия соответствующих объектов. Генерируемый транслятором с некоторого языка программирования объектный код, обеспечивающий такой интерфейс, не должен приводить к появлению дополнительных накладных расходов. В частности, это означает, что не должно возникать дополнительных уровней буферизации вводимых ( выводимых) данных. [29]
Автор глубоко убежден, что реальный прогресс не может быть достигнут, пока программисты не научатся ясно различать язык программирования ( его официальное описание) и реализацию этого языка программирования в терминах транслятора с этого языка программирования и используемой ЭВМ. Причем первое должно быть понятно без знания второго. А ожидать того, что программисты научатся ясно различать это, можно лишь в том случае, если разработчики языков программирования будут ставить перед собой такую цель, а те, Кто занимается реализацией языков программирования и созданием документации, не будут препятствовать ее, достижению. [30]