Содержание этапов и используемые при этом инструментальные средства следующие:
создание исходного текста программы. Исходные модули программы могут быть написаны как на языке высокого уровня, так и на ассемблере. Используется редактор текста, который в состав традиционного инструментального пакета обычно не входит;
трансляция. Транслятор и Ассемблер преобразуют исходный текст в перемещаемый объектный код. Кроме файлов объектного кода каждый из них формирует файл листинга трансляции. Используется транслятор (PL/M-51) и Ассемблер (ASM51) из пакета инструментальных средств;
создание библиотечных модулей. Библиотекарь позволяет помещать перемещаемый модуль в библиотеку, извлекать модуль из библиотеки, создавать новую библиотеку и т.д. Используется программа-библиотекарь (LIB51) из пакета инструментальных средств;
компоновка перемещаемых объектных модулей (в том числе библиотечных) в единую программу и размещение ее по абсолютным адресам памяти. Используется программа-компоновщик (RL51) из пакета инструментальных средств;
преобразование абсолютного кода в файл типа .hex. Используется утилита-конвертор (ОН) из пакета инструментальных средств.
Следует отметить, что язык PL/M специально создавался для программирования микропроцессоров, а языки Паскаль-ХХ и Си-ХХ в версиях для программирования микропроцессорных контроллеров существенно отличаются от версий, используемых при программировании персональных ЭВМ. Языки программирования микропроцессорных контроллеров служат для создания программ, функционирующих, как правило, без операционных систем. По этой причине отсутствуют возможности работы, например, с файлами. Ограниченные вычислительные возможности микроконтроллеров приводят к исключению рекурсии, ограничивают комбинации сложных типов данных (типа массив записей). С другой стороны, каждый язык, например Паскаль-51, ориентирован на архитектуру определеного семейства, включает машинно-зависимую компоненту. В нем можно использовать имена регистров и битов микроконтроллера без предварительного описания. Для работы в реальном масштабе времени введены процедуры прерываний. В настоящее время версии языков программирования, конкретные компиляторы и связаные с ними программы из состава пакетов программирования разрабатываются независимыми фирмами-поставщиками инструментальных средств. При создании исходного текста прикладной программы следует пользоваться руководствами типа «Описание языка» из состава документации используемого пакета.