Название: Комментарии в Cache
Вид работы: доклад
Рубрика: Информатика и программирование
Размер файла: 14.75 Kb
Скачать файл: referat.me-137351.docx
Краткое описание работы: Стандартный однострочный комментарий. Стандартный двойной комментарий. Макрокомментарий.
Комментарии в Cache
Евгений Каратаев
Комментарии в Cache есть. Это специальным образом отмеченная программистом последовательность символов, которая не используется компилятором. В них можно писать разные полезные слова, которые останутся и которые потом можно будет прочитать, например ругательства. В комментариях можно писать на любом языке. Это общеизвестные факты. Теперь посмотрим какие именно комментарии поддерживает Cache и какие у них есть особенности.
Стандартный однострочный комментарий.
Это однострочный комментарий, часть стандарта MUMPS, начинается с символа ; (точка с запятой) и продолжается до конца строки. Может начинаться с любого места за исключением строковой константы, с первого символа строки, и если перед ним стоит команда которая может иметь аргументы но по тексту они опущены, то между командой и комментарием должно быть два или больше пробелов. При компиляции кода в объектный код эти комментарии не попадают. Из несколько необычного можно отметить:
Текст комментария в объектный код не попадает.
При трансляции MAC Cache вставляет в первую строку INT кода отметку о дате трансляции.
Если перед комментарием есть команда, то в байт-код от комментария ничего не попадает, если нет команды или метки, то попадает внутренняя команда байт-кода «пустая операция»
В практическом применении комментария не рекомендуется писать комментарий занимающий всю строку, так чтобы перед ним не было команды или метки - при выполнении кода тратится время на выполнение пустой операции.
Если комментарий начинается с первого символа строки в макрокоде, то в int коде перед ним будет добавлена втяжка. Так поступает, например, Cache3.
Стандартный двойной комментарий
Прописывается также как стандартный, но начинается с двух символов точка с запятой (;;). Ведет себя точно так же как стандартный, но строка с комментарием включая команды которые ему предшествуют включается в объектный код. Более того, это включение выполняется наиболее оптимальным для выполнения функции $text образом. В случае если функция запрашивала эту строку, то рантайм обращается именно к объектному коду, и лишь потом ищет строку в исходном коде int. Всю строку кода можно разместить в теле объектного кода если в конце строки ставить два символа ;;. Этот комментарий также входит в стандарт MUMPS.
При вставке строки кода в объектный код будет произведено нормирование имен команд в некое внутреннее представление: имена команд например могут оказаться в верхнем регистре. Поэтому не следует ожидать, что в объектном коде будет точное соответствие тому что написал программист.
Макрокомментарий
Макрокомментарий начинается с символов #; и продолжается до конца строки. Он может начинаться только с начала строки, перед ним не должно быть ни команд и меток, он занимает всю строку. Макрокомментарий удаляется препроцессором, и в int код вообще не попадает. Это очень хорошая замена стандартному комментарию, если его нужно расположить целиком на одной строке. Этим макрокомментарий удобен. В силу отсутствия в стандарте MUMPS препроцессора этот комментарий не входит в стандарт.
К особенности макрокомментариев относится то, что транслятор int кода их не видит, поскольку они удаляются препроцессором. Это приводит к тому, что при получении сообщения об ошибке в коде номер строки в int коде может отличаться от номера строки в mac коде. Этим макрокомментарий неудобен.
Включение комментариев из инклудов
Находящиеся во включаемых файлах (inc) комментарии по умолчанию в генерируемый код int рутины не включаются. Но этого можно добиться используя макродирективы #show / #noshow - первая приводит к включению комментариев из inc в int, вторая - к выключению.
Трудно представить в каких случаях это может понадобиться за исключением отслеживания порядка включения inc - при выполнении директив #define препроцессор Cache в отличие от стандартных препроцессоров не проверяет был ли этот символ определен ранее.
Однострочный косой двойной комментарий
Начинается с двух символов // и продолжается до конца строки. Ведет себя и выглядит так же как такой же комментарий в C++ или JavaScript. Поддерживается начиная с какой-то версии Cache4. Поведение полностью совпадает со стандартным комментарием, но код выглядит посовременнее. В стандарт MUMPS не входит.
Однострочный косой тройной комментарий
Начинается с трех символов /// и продолжается до конца строки. Ведет себя также как однострочный двойной косой за исключением использования в редакторе классов Cache5. Если его использовать перед методом или другим каким-либо элементом класса, то он считается вводом дескрипции к этому элементу и используется и сохраняется впоследствии в определении класса. Если нужно чтобы в дескрипцию входило несколько строк, нужно каждую из них начать с такого комментария. В стандарт MUMPS не входит.
Многострочный комментарий
Начинается с символов /* и заканчивается символами */. Выглядит как обычный сишный комментарий. Текст внутри комментария полностью игнорируется транслятором. Весьма удобен если нужно разом закомментировать большой кусок кода но оставить его в тексте рутины или для того чтобы оформить многострочное пояснение. В стандарт MUMPS не входит.
К его неудобствам относится то, что он хотя и игнорируется транслятором int кода, но не игнорируется препроцессором - наличествующие в нем директивы продолжают отрабатываться препроцессором. Поэтому можно получить определение символа или код обрамленный макроусловиями вида #if / #endif несмотря на то что эти директивы могут находиться внутри многострочного комментария.
Похожие работы
-
Макросы в C++
Как было замечено, почти каждый макрос проявляет свой изъян или в языке, или в программе. Если вы хотите использовать макросы, прочитайте, пожалуйста, вначале очень внимательно руководство по вашей реализации C препроцессора.
-
Типы данных С++
Ознакомление со структурой, комментариями, переменными и типами данных, константами, перечислениями, преобразованием типов языка программирования высокого уровня С++. Ключевые понятия языка, идентификаторы, ключевые слова, функции, операторы, выражения.
-
Операторы цикла в языке программирования Си++"
Рассмотрение принципов работы операторов, реализующих циклические алгоритмы: while (выполнение условия, пока заданное выражение истинное), do-while, for, break (прекращение работы из-за обнаружения ошибки), continue (пропуск "оставшейся" части итерации).
-
Трансляция кода Delphi в код C++Builder
Типы данных. Ключевые слова. Операторные признаки конца. Объявление переменных. Строки. Приравнивание и сравнение переменных. Объявление констант. Функции и процедурыэ Конструкция with ... do.
-
Справочник по Visual С++
Ключевые слова языка Visual C++ __аsm dllimport2 __int8 naked2 __basedl __except __intl6 __stdcall __cdecl __fastcall __int32 thread2 __declspec __finally
-
Лабораторная работа по дисциплине теория и проектирование ЭВМ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ , ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ) ФАКУЛЬТЕТ ВМС КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
-
Полезные статьи для программистов
Предупреждение CERT: уязвимость сервера NFS. Ответный удар по спаму. Заголовок сорной электронной почты.
-
Cache': перехват текущего устройства
Неудобство стандартных устройств mumps состоит в том, что если выполняется программный код, осуществляющий ввод-вывод через него, то этот процесс сторонним кодом неуправляем иначе как установкой возможных опций устройству.
-
Подготовка дистрибутива MUI к установке
Microsoft выпустила 6 CD с MUI, на каждом из которых содержится несколько различных языков. CD с MUI не распространяются через розничную сеть, и доступны только корпоративным пользователям.
-
Knowledge blogging
Knowledge blogging позволяет совместить статическую базу знаний с динамической лентой в разрезе времени и/или рубрик (разделов). Результат такого симбиоза гораздо выше, чем если вести их раздельно.