Tw-city.info

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Язык программирования m

M (язык программирования)

M — это язык программирования, разработанный корпорацией Microsoft в 2008 году. Этот язык предназначен для создания текстовых предметно-ориентированных языков программирования и программных моделей с XAML.

См. также

Ссылки

Wikimedia Foundation . 2010 .

Смотреть что такое «M (язык программирования)» в других словарях:

Язык программирования C++ — Эта статья о книге; о языке программирования см.: C++. Язык программирования C++ The C++ Programming Language Автор: Бьёрн Страуструп Язык оригинала: английский Оригинал издан: 1986 Издательство: Addison–Wesley … Википедия

Язык программирования Java — разработанный корпорацией Sun Microsistems межплатформенный, интерпретируемый, объектно ориентированный язык программирования, используемый для создания приложений, работающих в под управлением веб браузера и характеризующихся высоким уровнем… … Финансовый словарь

Язык программирования Паскаль — процедурно ориентированный язык программирования высокого уровня, предназначенный для широкого класса задач. Язык Паскаль считается языком структурного программирования. По английски: Pascal language См. также: Процедурно ориентированные языки… … Финансовый словарь

Язык программирования — искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальной программы: компилятора или интерпретатора. По английски: Programming language Синонимы:… … Финансовый словарь

Язык программирования COBOL — язык программирования, предназначенный для решения экономических задач и задач обработки коммерческой информации. Язык COBOL отличается развитыми средствами работы с файлами и формой записи, приближенной к английскому языку. По английски: COBOL… … Финансовый словарь

Язык программирования Лисп — универсальный язык программирования высокого уровня. Язык Лисп: относится к декларативным языкам функционального типа; предназначен для обработки символьных данных, представленных в виде списков. Основой языка являются функции и рекурсивные… … Финансовый словарь

Язык программирования Ада — универсальный язык программирования: предназначенный для создания сложных систем; характеризующийся высокой степенью независимости от операционных систем; обеспечивающий поддержку средств параллельной обработки данных в реальном времени. По… … Финансовый словарь

Язык программирования Алгол — язык программирования, предназначенный для решения численных задач. Программа на языке ALGOL имеет блочную структуру, позволяющую эффективно реализовывать механизмы динамического распределения памяти. По английски: ALGOL language См. также:… … Финансовый словарь

Язык программирования Модула — алгоритмический язык, предназначенный для составления программ, работающих в реальном времени. В языке Модула используются: понятия модуля и процесса; средства программирования низкого уровня. Программа на языке Модула формируется из независимых… … Финансовый словарь

Язык программирования Пролог — язык логического программирования, программа на котором состоит: из логических утверждений, образующих базу данных; и из правила вывода новых утверждений из известных. По английски: PROLOG language См. также: Декларативные языки программирования… … Финансовый словарь

Язык программирования Форт — процедурно ориентированный язык программирования, предназначенный для эффективной работы с персональными системами. Форт близок к языку ассемблера. См. также: Процедурно ориентированные языки программирования Финансовый словарь Финам … Финансовый словарь

Глава 20. Понимание языка М

Это продолжение перевода книги Кен Пульс и Мигель Эскобар. Язык М для Power Query. Главы не являются независимыми, поэтому рекомендую читать последовательно.

Откройте Understanding M.xlsx. Выберите любую ячейку в таблице Sales. Данные –> Из таблицы/диапазона. В редакторе Power Query удалите шаг Измененный тип.

Рис. 20.1. Начальный вид запроса; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Скачать заметку в формате Word или pdf, примеры в формате архива

Ранее вы управляли кодом через пользовательский интерфейс. Вы видели, что Power Query действует как макро-рекордер, и взаимодействовали с ним через окно ПРИМЕНЕННЫЕ ШАНИ. У вас также был небольшой опыт взаимодействие через строку формул. Пора познакомиться с языком программирования. Главная –> Расширенный редактор. Откроется окно, содержащее код запроса:

Рис. 20.2. Расширенный редактор

Расширенный редактор – это, по сути, текстовый редактор с проверкой синтаксиса. Взгляните на код внутри окна. Первая строка каждого запроса должна включать единственное слово let (для функций может быть иначе, см. главу 21). Вторая строка начинается со слова Источник. Это имя шага из поля ПРИМЕНЕННЫЕ ШАГИ. Это имя устанавливает соответствие шагов и строк кода. В нашем примере Power Query вызвал функцию Excel.CurrentWorkbook(). Затем он добавил список импортированных записей (таблиц Excel). Наконец, он извлек содержимое записей для этого объекта. Синтаксис записи можно представить, как Функция()<Объект>[Поле]. Мы уже видели эту конструкцию раньше, см. главу 19, раздел Создание записи из строки таблицы.

Предпоследняя строка каждого запроса состоит из единственного слова in. Последняя строка (одно слово) – ссылка на имя шага, содержащего данные, возвращаемые запросом. Как правило, это имя последнего шага, но не обязательно.

Добавим еще один шаг к нашему запросу. Закройте Расширенный редактор, нажав кнопку Готово. Щелкните правой кнопкой мыши столбец Price –> Тип изменения –> Десятичное число. Вернитесь в Расширенный редактор.

Рис. 20.3. В запрос добавлен новый шаг

Обратите внимание. Во-первых, в конец второй строки была добавлена запятая. Это важно: каждая строка между строками let и in должна заканчиваться запятой. Исключение – последняя строка перед in. Во-вторых, написание имени второго шага отличается по синтаксису от первого. Отличие вызвано наличием пробела в имени Измененный тип. Power Query рассматривает эти два слова как отдельные термины.

Если хотите, переименуйте шаг. Это можно сделать двумя способами. Щелкните правой кнопкой мыши имя шага в области ПРИМЕНЕННЫЕ ШАГИ (перед входом в Расширенный редактор) и переименуйте шаг. В самом Расширенном редакторе удалите каждое вхождение #»Измененный тип» и замените на NewType. Независимо от того, какой метод вы выберете, ваш код приобретет вид:

Рис. 20.4. Упрощение кода удалением пробела из названия шага

Связывая шаги вместе

Обратите внимание, что отдельные строки связаны друг с другом. Так, например, в строке NewType есть ссылка на Источник:

Рис. 20.4а. Элемент в строке NewType ссылается на Источник

Именно такие ссылки позволяют Power Query связывать все команды вместе. Вы можете интерпретировать строку NewType следующим образом: получить выход предыдущего шага и загрузить его в функцию преобразования типов данных для столбцов.

Читать еще:  Асинхронное программирование c

Разрыв строк

Строки можно переносить без особых ограничений. Когда Power Query читает код, он ищет ключевые слова и запятые. При чтении строки он игнорирует запятые, заключенные в круглые, фигурные или квадратные скобки и кавычки. Но обнаружив одинокую запятую, он распознает ее как конец строки и дальнейший код относит к следующему шагу. А найдя ключевое слово in, он понимает, что запрос завершен, и смотрит, какой шаг нужно вернуть. Это означает, что код…

Язык программирования PL/M-80 и его потомки

PL/M-80 – процедурный машинно-ориентированный язык программирования для систем на базе микропроцессоров Intel 8080 и 8085, а также совместимого с ними снизу вверх Z -80 фирмы Zilog. Аббревиатура расшифровывается как Programming Language for Microcomputers (язык программирования для микрокомпьютеров), а 80 – указывает тип микропроцессора, для которого реализована та или иная версия языка. PL/M был разработан в 1972 г. фирмой МАА (Microcomputers Applications Associates) по заказу корпорации Intel. Первый компилятор для этого языка написал Гарри Килдол (Gary Kildall)1, будущий автор операционной системы СР/М-80.

Компиляторы с PL/M были сделаны для следующих микропроцессоров: Intel 4004, 8008, 8080/85, 8051, 80196, 8086/8088, 80188/80186, 286 и 386. Мы видим, что номер в названии языка соответствует типу микропроцессора, для которого он реализован. Соответственно PL/M для процессора 8051 называется PL/M-51. Для каждого микропроцессора язык имеет свои, иногда весьма существенные, особенности.

Часто утверждается, что он основан на усечённом языке PL/1, но это совершенно не так, поскольку он заимствовал черты нескольких языков, Алгола, XPL и в том числе PL/1. Язык PL/M-80 исходно разрабатывался фирмой MAA (позднее она стала Digital Research ) в 1972 г. заказу корпорации Intel как самостоятельный язык [1], ориентированный на архитектуру микропроцессора i8080, и при более детальном знакомстве с ним вы увидите, что схожесть с PL/1 создаёт только ключевое слово DCL, служащее для объявления переменных. Язык процедурный, со строгой типизацией данных, имеет блочную структуру и правила видимости имён. Достоинство языка – его компактность. Интеловский компилятор с PL/M-80 создавал при трансляции очень компактный объектный код с коэффициентом расширения 6, то есть один оператор языка заменялся при трансляции в среднем шестью ассемблерными командами. Аналогично, объ ё мный коэффициент объектного кода по сравнению с эквивалентным ассемблерным лежал в пределах 1,2—1,3. То есть полученный после трансляции объектный код занимал в 1,2 раза больше памяти, нежели код программы, написанной на ассемблере i8080.

Первоначально интеловский транслятор с PL/M -80 работал под операционной системой ISIS-II на системах разработки Intellec-800, Intellec Series II, Intellec Series III и замечательной двухпроцессорной портативной системе iPDS. Затем компиляторы для него появились под ОС CP/M-80, а с появлением PC – появились системы поддержки разработок на PL/M и на них, в частности, в виде эмуляторов CP/M-80 на PC. Компиляторы с PL/M были сделаны для следующих микропроцессоров: Intel 4004, 8008, 8080, 8051, 80196, 8086/8088, 80188/80186, 286 и 386. Режим программирования для микропроцессора i486 поддерживался в PL/M -386. В настоящее время Intel этот язык не поддерживает, однако существуют продукты других фирм, в том числе несколько конвертеров исходных текстов программ на PL/M в Си.

Ниже дан краткий справочник по языку PL/M-80, а затем приведены различия между PL/M-86 и PL/M-80, PL/M-286 и PL/M-86, между PL/M-386 и PL/M-286. Подробное описание языка PL/M-51 вы можете найти в помещённом в Музее авторском курсе А.В. Микушина по микропроцессорам.

К раткий справочник по языку PL/M-80

Итак, программа на PL/M-80 состоит из предложений. Каждое предложение заканчивается знаком “;” (точка с запятой). Общий вид программы:

имя_программы: DO;
обявления и определения
;
[исполняемые предложения;]
END имя_программы;

1. Алфавит PL/M-80

Буквы : 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

Числа: 0 1 2 3 4 5 6 7 8 9

Спецсимволы: $ = . / ( ) + — ‘ * , : ; и пробел

Все другие символы рассматриваются компилятором как пробелы. PL/M не различает символы в верхнем и нижнем регистрах, за исключением символов в строковых константах. Несколько идущих подряд пробелов рассматриваются компилятором как один пробел.

Наименьшей значимой единицей языка в предложении PL/M является токен. Каждый токен принадлежит к одному из следующих классов: переменные, зарезервированные слова, простые разделители (это все специальные символы за исключением знака доллара), составные разделители (<>, =, :=, /*, */), числовые константы, строковые константы.

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

2. Идентификаторы

Идентификаторы задают имена переменных, процедур, констант и предложений. В последнем случае они именуются также метками. Идентификаторы могут быть длинной от 1 до 31 символа, причём первым символом должна быть буква, а остальные – б у квы, цифры и знак доллара, который добавляется для улучшения читабельности текста, но игнорируется компилятором. Так что идентификатор TEST$$$EXAMPLE и TESTEXAMPLE для него одинаковы. Кроме того, знак доллара не может быть первым в имени идентификатора. Идентификаторы должны отличаться от ключевых слов.

Переменные могут быть скалярами, массивами или структурами.

3. Зарезервированные (ключевые) слова

Следующие слова зарезервированы в языке и не могут использоваться в качестве идентификаторов:

ADDRESS
AND
BASED
BY
BYTE
CALL
CASE
DATA
DECLARE
DISABLE
DO
ELSE
ENABLE
END
EOF
GOTO
GO
HALT
IF
INITIAL
INTERRUPT
LABEL
LITERALLY
MINUS
MOD
NOT
PLUS
PROCEDURE
RETURN
OR
THEN
TO
WHILE
XOR

4. Типы данных

В языке всего два типа данных. Тип данных BYTE ссылается на 8-битовые данные, а тип ADDRESS – на 16-битовые. Переменная типа BYTE занимает соответственно один байт памяти и принимает беззнаковые целые значения от 0 до 255, а переменная типа ADDRESS занимает два байта памяти и принимает беззнаковые целые значения от 0 до 65535 (0FFFFh). Можно создавать массивы и указатели любого из этих типов.

4.1. Константы

Константа – это значение, которое не изменяется в ходе исполнения программы. Они бывают числовыми и строковыми. Числовые константы в PL/M-80 целочисленные, 8- и 16-битовые. Они могут быть записаны как двоичные (суфикс B), восьмеричные (суфиксы O и Q), десятичные (D) и шестнадцатеричные (H) числа. Для обозначения системы счисления используется соответствующий суфикс числа, если он опущен, то число считается десятичным.

Читать еще:  Язык программирования c

Шестнадцатеричные константы длжны начинаться с цифры, чтобы их не путать с переменными, для этого впереди её пишется ноль, например 0Ah, и заканчиваться суффиксом h. Это нужно делать обязательно, так как число типа 09D без суффикса h будет воспринято как десятичное. Как и с идентификаторами, знак доллара может встраиваться в числовую константу. Это иногда удобно для записи двоичных чисел. Строковые константы – последовательность символов, заключённых в кавычки (апострофы). Разумеется, чтобы включить в состав строки саму кавычку, её следует при записи удвоить. Строки символов представлены 7-битным кодом ASCII. Сторок длинной в 1 символ рассматривается как значение типа BYTE; длинной 2 – как ADDRESS. Строки длиннее двух символов могут использоваться только с помощью dot-оператора. (На самом деле он представляет собой обычный указатель :). Максимальная длина строки – 255 знаков.

5. Выражения и структуры

5.1 Арифметические операторы

В PL/M – семь арифметических операторов, которые могут выполнять действия над данными типа BYTE или ADDRESS. Таким образом, арифметика в языке только целочисленная, поскольку в системных программах для этого процессора плавующая арифметика не требуется. Однако она может быть реализована с помощью специальной библиотеки.

Язык программирования m

Описание языка M

Язык M описывает мета-информацию в иерархической форме. В формате присутствуют ключи и их значения. Пара ключ-значение разделяется двоеточием:

Помимо значения ключ может иметь дочерние ключи. По умолчанию каждый ключ описывается на одной строчке. У любого ключа может быть несколько подключей. Чтобы показать их, используется идентация (сдвиг на два пробела). Например:

Имена ключей:

В отношении имён ключей действуют следующие правила:

  • Именем ключа d M может быть любой идентификатор, имеющий формат идентификатора языка C++. Такой формат требуется для любых идентификаторов языка M, а также его подмножеств декларативного описания чего бы то ни было. Суть:
    • следующие символы могут быть любым знаком идентификатора, включая первый: _ 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 E F G H I J K L M N O P Q R S T U V W X Y Z;
    • следующие символы могут быть любым знаком идентификатора, исключая первый: 0 1 2 3 4 5 6 7 8 9;
    • имена ключей не должны содержать специальных символов.)
  • При именовании ключей следует придерживаться метода CamelCase.
  • Пробелы в именах ключей допускаются.
  • На одном уровне (в подключах одного родительского ключа) запрещено существование двух ключей с одинаковым именем.

Интерпретатор автоматически преобразовывает значения ключей в variant (универсальный тип данных), распознавая числа, строки, логические значения. Поддерживаются следующие типы значений ключей:

  • число (обычное десятичное число Int32);
  • логический (True/False — регистрозависимые);
  • строка (однострочная, ограниченная символом перевода каретки или конца файла);
  • текст (массив строк, ограниченный символами кавычек — » (двойные кавычки));
  • массив (ограниченное фигурными скобками множество значений, разделенных запятыми — < 1, 2, 3, test >), массив может содержать подмассивы;
  • байт;
  • временной тип (timestamp_t).

Если строка однострочная, то её не обязательно обрамлять кавычками:

Логические значения задаются указанием True или False (все остальные формы записи будут переведены в строки). Если в строке нет символа «:» то считается, что значение ключа пустое (empty). Если нужно представить многострочное значение ключа, следует использовать кавычки.

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

Поддерживаются однострочные комментарии, начинающиеся с точки с запятой «;» (допускается также знак «|»). Если где-то нужно вставить символ «;», то он должен быть дублирован «;;», что подавит комментирующий эффект. Символ «;» в рамках строки, ограниченной кавычками («»»), комментирующего эффекта не имеет.

Деревья в языке M

В каждом файле на языке M можно описать несколько деревьев. Для каждого дерева указывается root-путь от общего корня. Для указания root-пути используется конструкция:

  • — ключевое слово;
  • «:» — стандартный разделитель;
  • — значение root-пути в виде пути в реестре (например, : Ucb/Events). Путь задаётся перечислением имен ключей в реестре через обратный слеш («/»).

Текст, идущий за этой инструкцией до первого разрыва, воспринимается как описание дерева в формате M. Разрывом считается строка, состоящая только из пробелов, пустая строка (только перевод каретки) или конец файла.

Значение root-пути не обязано быть уникальным. При этом, если указываются одинаковые root-пути, их содержимое накладывается друг на друга (дополняется в порядке загрузки).

Большой блок строковых данных может быть вставлен в значение ключа с применением конструкции @nonutx.

Инструкция @nonutx блокирует в M анализ подключей заданного ключа (в примере ). Строки текста в подуровнях подключа перемещаются как есть, в значение , в виде строки, и не образуют иерархии. Режим @nonutx обрывается первым ключем того же уровня, что и ключ, у которого в значении установлено @nonutx.

Формат файлов с метаданными

Мета-данные, описанные с помощью M, размещаются в текстовых файлах с расширением *.utx.

Файл с конструкциями языка M формируется в следующей последовательности:

  • Каждый файл может содержать описание нескольких источников (root).
  • Каждый источник начинается с ключевого слова : (отступы от начала строки не допускаются).
  • За следует root-путь в общем дереве мета-данных (например /ucb/data).
  • Строки, следующие после инструкции :, считаются строками, содержащими данные — подключи ключа /ucb/data.
  • Строки данных заканчиваются пустой строкой (разрывом).
  • После разрыва ожидается либо конец файла, либо новая инструкция :.
  • Конец файла также считается признаком завершения блока данных.

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

Язык высокого уровня PLM-51 предназначен для программирования контроллеров серии MCS-51. Он удовлетворяет требованиям разработки программного обеспечения микроконтроллеров для систем различного назначения, в том числе разработку программ методом структурного программирования.

Компилятор plm51.exe — это программное средство, которое транслирует исходный текст, написанный на языке программирования PL/M-51 в перемещаемые объектные модули. Эти модули затем могут объединяться с другими модулями, написанными на языкax программирования PLM-51 или ASM-51. Компилятор выводит на экран дисплея или в файлы листингов сообщения об ошибках и вспомогательную информацию, которая может быть использована при отладке и разработке программ.

Читать еще:  Как выучить программирование

Компилятор plm51.exe может быть установлен на компьютерах серии IBM или совместимых с ними в операционной системе DOS 3.Х и выше и использоваться для генерации команд микроконтроллеров семейства MCS-51.

Необходимо отметить, что язык программирования PLM-51 предназначен для написания управляющих программ, поэтому не поддерживает знаковую арифметику и вычисления с плавающей запятой. Это является одновременно и преимуществом и недостатком этого языка программирования. Из-за указанной особенности загрузочные модули, созданные на этом языке программирования получаются практически такими же компактными, как и написанные на языке программирования ассемблер, но если в процессе реализуемого алгоритма управления каким либо объектом требуется достаточно сложные вычисления, то приходится использовать отдельно написанные библиотеки математической поддержки (или писать их самим).

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

Применение языка программирования PL/M-51

Язык программирования PL/M-51 и его библиотеки являются частью интегрированного набора средств разработки программного обеспечения для микроконтроллеров семейства MCS-51. Язык программирования PLМ51 поддерживает модульное написание программ. Процесс разработки программ на языке программирования PLM-51 показан на рисунке 1.


Рисунок 1. Процесс написания программы на языке программирования PLM-51

При разработке программного обеспечения выполняются следующие этапы:

  • постановка задачи (полное определение решаемой проблемы);
  • разработка принципиальной схемы и выбор необходимого программного обеспечения;
  • разработка системного программного обеспечения. Этот важный шаг состоит из нескольких этапов, включающих: описание последовательности выполняемых каждым блоком задач, выбор языка программирования и используемых алгоритмов;
  • написание текста программы и подготовка к трансляции при помощи любого текстового редактора;
  • компиляция программы;
  • исправление синтаксических ошибок, выявленных компилятором, в текстовом редакторе с последующей перетрансляцией;
  • создание и сохранение библиотек часто используемых объектных модулей при помощи программы lib51.ехе;
  • связывание полученных перемещаемых объектных модулей в абсолютный модуль и размещение переменных в памяти микроконтроллера при помощи редактора связей rl51.exe;
  • создание программы, записываемой в ПЗУ микроконтроллера (загружаемый модуль) в hex формате, при помощи программы oh.exe;
  • проверка полученной программы при помощи символьного отладчика или других программных или аппаратных средств.

Файл, в котором хранится программа, написанная на языке PLМ51 (исходный текст программы), называется исходным модулем. Для исходного текста программы принято использовать расширения файла: plm или p51. Исходный текст программы можно написать, используя любой текстовый редактор.

Получить объектный модуль можно, указав имя исходного модуля программы в качестве параметра программы-транслятора в DOS строке или строке командного файла:

В этом примере в результате трансляции исходного текста программы, содержащегося в файле modul.plm будет получен объектный модуль, который будет записан в файл с именем modul.obj. Как показано на рисунке 1, объектный модуль не может быть загружен в память программ микроконтроллера. В память микроконтроллера загружается исполняемый модуль.

Получить исполняемый модуль программы можно, указав все имена объектных модулей программы в качестве параметров программы редактора связей в DOS строке или строке командного файла:

rl51.exe main.obj, modul1.obj, modul2.obj

Имя исполняемого модуля программы по умолчанию совпадает с именем первого объектного файла в списке параметров строки запуска редактора связей. Исполняемый модуль программы записывается в файл без расширения. При выполнении приведённой выше в качестве примера командной строки будет получен исполняемый модуль, который будет записан в файл с именем main.

Большинство программаторов, предназначенных для записи информации в память программ микроконтроллеров, не может работать с объектным форматом исполняемого модуля программы, поэтому для загрузки машинного кода в процессор необходимо преобразовать объектный формат исполняемого модуля в общепринятый для программаторов гексадецимальный формат. При преобразовании форматов вся отладочная информация теряется. Машинный код процессора в гексадецимальном формате называется загрузочным модулем.

Загрузочный модуль программы можно получить при помощи программы-преобразователя программы oh.exe, передав ей в качестве параметра имя файла исполняемого модуля программы, например:

В результате выполнения этой командной строки будет получен загрузочный модуль программы, который будет записан в файл с именем main.obj.

Отладка программ

После того, как программные модули были успешно оттранслированы, размещены по конкретным адресам и связаны между собой, для отладки программы можно воспользоваться любым из методов, показанных на рисунке 1:

  • внутрисхемным эмулятором
  • встроенным программным отладчиком
  • внешним программным отладчиком
  • отлаживаемым устройством с записанным в память программ двоичным кодом программы

Внутрисхемный эмулятор с отображением переменных языка программирования на дисплее компьютера оказывает значительную помощь при отладке программ непосредственно на разрабатываемой аппаратуре. Этот метод отладки предоставляет наиболее удобную среду, когда можно непосредственно в отлаживаемом устройстве останавливать программу, контролировать выполнение программы непосредственно по исходному тексту программы, состояние внешних портов и внутренних переменных, как входящих в состав микросхемы, так и объявленных при написании исходного текста программы. Необходимое для отладки программ оборудование показано на рисунке 2.

Рисунок 2. Пример системы отладки программного обеспечения для микроконтроллеров.

При отладке программы с использованием внутрисхемного эмулятора необходимо включать в объектные модули символьную информацию. Для этого используются директивы компилятора. В компиляторе языка программирования PLM-51 возможны следующие действия:

  • включение информации о типе переменных для проверки типов при связывании модулей. Эта же информация используется внутрисхемным эмулятором. Исключение информации о переменных пользователя может использоваться для создания прототипов или для уменьшения размера объектного модуля;
  • включение или исключение таблиц символьной информации;
  • конфигурация вызовов подпрограмм для обеспечения связывания с модулями, написанными на языке программирования ASM-51;
  • определение желаемого содержания и формата выходного листинга программы. Распечатка промежуточных кодов на языке ассемблер после компилирования программ, написанных на языке программирования PLM-51. Включение или исключение листингов отдельных блоков исходного текста.
  1. Л.К. Гребенников А.А. Летник Программирование микропроцессорных систем на языке ПЛ/М, М, 1986

Вместе со статьей «Язык программирования PLM-51» читают:

Ссылка на основную публикацию
Adblock
detector