Микропроцессоры

Символы языка программирования PLM-51

В исходном тексте программы, написанной на языке программирования PLM-51 можно использовать буквы латинского алфавита верхнего и нижнего регистров, а также арабские цифры:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d i f g h i j k l m n o p q r s t
0 1 2 3 4 5 6 7 8 9

В языке программирования PLM-51 используются также специальные символы:

= . / ( ) + ' < > : ; $ _

Кроме того, язык программирования PL/M-51 использует символы пробела, табуляции, возврата каретки, перевода строки.

Компилятор PLM-51 выдает сообщение об ошибке, если в тексте исходной программы встречается символ, отличающийся от символов, перечисленных выше. (То есть строки и символьные константы на русском языке запрещены!) Компилятор воспринимает последовательность непрерывных пробелов как один пробел.

PLM-51 не делает различий между строчными и заглавными буквами, кроме символьных строк. Например, имена xyz и XYZ одинаковы, а строки 'PLM' и 'plm' различны.

Идентификаторы в языке программирования PLM-51 используются для того, чтобы дать имя переменной, процедуре, символической константе или метке оператора. Длина идентификатора не превышает 31 символ. Первый символ обязательно должен быть буквой, последующие символы могут быть буквами, цифрами, знаками _ или $. Знак $ внутри идентификатора всегда игнорируется транслятором и может использоваться для улучшения читаемости идентификатора. Идентификатор, содержащий знак $, является полным эквивалентом идентификатора, из которого этот знак удален.

Примеры правильных идентификаторов:

A
XYR_56
DFG$$RTY$CFG
RT$EUI
RTEUI

Последние два примера эквивалентны.

Идентификаторы должны отличаться от зарезервированных (ключевых) слов.

Лексические единицы, разделители и использование пробелов.

Наименьшей единицей операторов PL/M-51 является лексическая единица. Каждая из лексических единиц относится к одному из классов:

  • идентификаторы;
  • ключевые слова;
  • простые ограничители (все специальные символы, кроме $ и _, являются простыми ограничителями);
  • составные ограничители (они образуются посредством определенных комбинаций двух спецсимволов, а именно: <>, <=, >=, /*, */);
  • числовые константы;
  • текстовые строковые константы;

В большинстве случаев вполне очевидно, где заканчивается одна лексическая единица и начинается следующая. Например, в операторе присваивания:

X=AP*(FT-3)/A;

X, AP, FT, A - являются идентификаторами переменных;
3 - числовой константой;
все прочие символы - простыми ограничителями.

Ключевые слова, идентификаторы и числовые константы должны обязательно отделяться друг от друга. Если между двумя идентификаторами, числовыми константами или ключевыми словами не может быть указан простой или составной ограничитель, то в качестве разделителя между ними должен вставляться символ пробела. Вместо одного символа пробел может использоваться непрерывная последовательность символов пробела.

Целочисленные константы.

Целочисленные константы могут быть записаны как двоичные, восьмеричные, десятичные или шестнадцатеричные числа в зависимости от того, какая система счисления удобнее для представления константы. Компилятор распознает основание системы счисления по одной из букв B, Q’ O’ D или Н, следующей за числом (суффикс).

Буква B используется для обозначения двоичных чисел. Примеры записи двоичных констант:

1001b, 1000$1100B.

Эти константы удобно использовать при работе непосредственно с выводами портов или с отдельными битами внутренних регистров специального назначения.

Буквы 'O' или 'Q' используется для обозначения восьмеричных чисел (рекомендуется буква Q).

Для обозначения десятичных чисел используется буква D. Если буква за числом отсутствует, то считается, что это десятичная константа.

Шестнадцатеричные цифры определяются по букве H. Первым символом шестнадцатеричной константы обязательно должна быть цифра, это отличает ее от идентификаторов. Например, шестнадцатеричное представление числа 163 должно быть записано как 0A3H, а не А3Н, что будет принято компилятором за идентификатор.

Если константа содержит цифру, недопустимую в данной системе счисления, то данная константа считается ошибочной.

Максимальное значение целочисленной константы с размерностью word:

1111$1111$1111$1111В = 177777Q = 65535D = 0FFFFH

Примеры правильных целочисленных констант:

12AH, 2, 33Q, 1010B, 55D, 0BF3H, 65535, 0FC05H

Примеры синтаксически недопустимых целочисленных констант:

12AF - шестнадцатеричная константа не имеет буквы Н в конце, поэтому по умолчанию для нее принимается десятичная система счисления, но тогда в ней присутствуют недопустимые символы.

12AD - последний символ D может быть интерпретирован как основание системы счисления, но тогда символ А не десятичная цифра. Если же это шестнадцатеричная константа, то тогда в ней отсутствует указатель системы счисления буква Н.

11А2В - А и 2 недопустимые цифры для двоичного числа. Если необходимо записать шестнадцатеричную константу, то надо указать суффикс Н.

2ADGH - символ G недопустим при записи шестнадцатеричных чисел.

Строчные константы.

Строчная константа записывается при помощи символов кода ASCII заключенных в апострофы. Для того, чтобы включить в строку апостроф записывается два апострофа. Например, строка '''Q' состоит из двух символов - апострофа и буквы Q. В строке допускается использование пробелов. Транслятор представляет в памяти строки символов в коде ASCII-7, по одному восьмиразрядному байту на каждый семиразрядный код, с нулевым старшим разрядом. Строка, состоящая из двух символов, транслируется в двухбайтовое значение. Например: строка 'А' эквивалентна числу 41Н, а строка 'AG' эквивалентна числу 4147Н. Строки символов, имеющие длину более двух символов, не могут использоваться в качестве арифметических значений, поскольку арифметические значения ограничиваются 16 двоичными разрядами. Тем не менее, более длинная строка символов может использоваться для хранения текстовых сообщений.

Необходимо однако отметить, что язык программирования PLM-51 не поддерживает русских букв и воспринимает эти символы как ошибки. Если требуется написать какую либо команду на русском языке, то приходится использовать для этого цифровые константы.

Комментарии.

Поясняющие комментарии могут чередоваться с текстом программы для улучшения читаемости программы и ее документирования. Комментарии в языке программирования PL/M-51 являются последовательностью символов, которая слева ограничивается символами /*, справа ограничивается символами */. Эти ограничители указывают транслятору, что следует игнорировать любой текст между ними. Комментарий может содержать любой печатный символ кода ASCII, а также включать пробелы, возврат каретки, перевод строки и табуляцию. Комментарий не может быть вставлен внутрь содержимого строковой константы. Комментарий может встречаться везде, за исключением вставки его в лексическую единицу.

Пример комментария: /* начало сегмента данных */


[Назад] [Содержание] [Вперёд]