Препроцессор - транслятор - Большая Энциклопедия Нефти и Газа, статья, страница 1
Ценный совет: НИКОГДА не разворачивайте подарок сразу, а дождитесь ухода гостей. Если развернете его при гостях, то никому из присутствующих его уже не подаришь... Законы Мерфи (еще...)

Препроцессор - транслятор

Cтраница 1


Препроцессор транслятора с языка Си обеспечивает возможность выполнения трех основных операций: подстановки строк, включения файлов и условной трансляции. Препроцессор, являясь фактически нулевым проходом транслятора с языка Си, обеспечивает возможность выполнения предписываемых ему действий до начала трансляции программы.  [1]

Препроцессор транслятора с языка Си предоставляет ряд возможностей, отсутствующих в языке Паскаль. Примерами таких возможностей служат символические константы и константные выражения, облегчающие модификацию программ и повышающие их удобочитаемость, а также использование макросов вместо вызываемых подпрограмм, что повышает эффективность программ. Однако необходимо отметить, что использование макросов не столь безопасно, как использование вызываемых подпрограмм.  [2]

При использовании языка Си не возникает проблем в рассмотренных выше ситуациях, поскольку препроцессор транслятора с языка Си предоставляет в распоряжение программиста все необходимые средства. Аналогичный препроцессор несложно было бы реализовать и для языка Паскаль.  [3]

Хотя в языке Си и отсутствует возможность использования утверждений, эту возможность легко реализовать с помощью препроцессора транслятора с языка Си. Опыт использования реализованных таким образом утверждений в языке Си показывает, что их использование несложно и облегчает отладку программ.  [4]

До некоторой степени это можно смягчить, используя механизм, реализованный в языках Си и Ратфор с помощью конструкции include, обрабатываемой препроцессором транслятора с языка Си: файлы, содержащие исходный текст различных компонентов программы, могут быть включены в нужное место программы, не внося беспорядка в программу и не загромождая ее. Конструкция include не является частью языка Паскаль, но реализована в первых трех из четырех упомянутых в разд.  [5]

6 Ключевые слова препроцессорных средств PL / I. [6]

В заключение приведем для справок используемые в препроцессорных средствах ключевые слова ( табл. 2), которые кратко отображают возможности, имеющиеся в препроцессоре транслятора с языка PL / I ОС ЕС.  [7]

Составные операторы или блоки в языке Си выделяются с помощью символов и, а комментарии - с помощью символов / и / Строки программы, начинающиеся с символа обрабатываются препроцессором транслятора с. Оператор присваивания обозначается в языке Си с помощью символа, а символы [ и ] используются в обозначениях массивов.  [8]

Для языка Паскаль отсутствует набор средств, реализуемых некоторым стандартным макропрепроцессором. Использование описателя const в языке Паскаль позволяет решить около 95 % проблем, решаемых в языке Си с помощью конструкции define, реализуемой препроцессором транслятора с языка Си. Однако для оставшихся 5 % проблем удовлетворительное решение отсутствует. Конечно, не очень сложно добавить макропрепроцессор к транслятору с языка Паскаль.  [9]

В языке Си имеется препроцессор, который обеспечивает расширение макросов путем выполнения подстановки строк. Этот препроцессор часто используется для введения символических констант, улучшающих удобочитаемость программ и упрощающих внесение в программы изменений. Осторожное и аккуратное использование этого препроцессора дает хорошие результаты. Однако, как обычно это бывает в языке Си, препроцессор транслятора с языка Си не предусматривает проведения контроля типов. Более того, хотя трудно спорить с тем, что использование препроцессора транслятора с языка Си оказывает существенную помощь при написании программ, необходимо помнить, что его использование может привести ( и очень часто приводит) к ухудшению удобочитаемости программ.  [10]

Составные операторы или блоки в языке Си выделяются с помощью символов и, а комментарии - с помощью символов / и / Строки программы, начинающиеся с символа обрабатываются препроцессором транслятора с. Оператор присваивания обозначается в языке Си с помощью символа, а символы [ и ] используются в обозначениях массивов. В приведенном ниже примере программы на языке Си строка, содержащая конструкцию include, в результате работы препроцессора транслятора с языка Си будет заменена на содержимое файла с именем stdio. Оператор typedef обеспечивает возможность определения новых типов данных, в данном случае тип item определяется как структура, содержащая два поля - поле ключа и поле значения. Оператор цикла while обеспечивает выполнение своего тела до тех пор, пока условие low high является истинным.  [11]

В языке Си имеется препроцессор, который обеспечивает расширение макросов путем выполнения подстановки строк. Этот препроцессор часто используется для введения символических констант, улучшающих удобочитаемость программ и упрощающих внесение в программы изменений. Осторожное и аккуратное использование этого препроцессора дает хорошие результаты. Однако, как обычно это бывает в языке Си, препроцессор транслятора с языка Си не предусматривает проведения контроля типов. Более того, хотя трудно спорить с тем, что использование препроцессора транслятора с языка Си оказывает существенную помощь при написании программ, необходимо помнить, что его использование может привести ( и очень часто приводит) к ухудшению удобочитаемости программ.  [12]

Программа на языке Си может состоять из большого числа подпрограмм, называемых функциями, хранящихся в различных файлах. Файл, содержащий исходный текст программы ( или ее части) на языке Си, может содержать внешние объекты, данные и функции, которые могут быть либо локальными по отношению к этому файлу, либо глобальными по отношению к некоторому набору файлов. Выполняемые операторы группируются в блоки, которые могут вкладываться один в другой на произвольную глубину. Переменные могут быть описаны в начале любого блока. Большая часть файлов, содержащих исходные тексты программ на языке Си, начинаются с прелюдии - последовательности операторов, обрабатываемых препроцессором транслятора с языка Си. По принятому соглашению каждая программа на языке Си имеет среди составляющих ее функций функцию с именем main, с которой и начинается выполнение программы. Передача параметров всех типов, за исключением массивов, осуществляется по значению. В случае массива в качестве значения передается адрес первого элемента массива.  [13]



Страницы:      1