СПОСОБ РАЗРАБОТКИ ПОСЛЕДОВАТЕЛЬНОСТИ МАШИННЫХ КОМАНД ВЫЧИСЛИТЕЛЬНОЙ МАШИНЫ
METHOD FOR DEVELOPING MACHINE INSTRUCTIONS SEQUENCE OF COMPUTER

Область техники:
Изобретение относится к вычислительным системам, информационным технологиям и может быть использовано в процессе разработки последовательности команд, определения порядков и способов работы вычислительных устройств, а также систем автоматического и автоматизированного управления техническими объектами, технологическими процессами, при управлении и/или наблюдении за физическими процессами или явлениями.
Уровень техники:
Предлагаемое изобретение основывается на современном уровне техники в области информационных технологий, вычислительной технике, вычислительных устройствах, методах работы вычислительных устройств и методах определения порядка работы вычислительных устройств.
Не все известные способы дают эффективные последовательности команд и рациональное использование пространств запоминающих устройств, что в целом влияет на эффективность и быстродействие решения вычислительным устройством задач, для решения которых оно применяется.
В основе вычислительных устройств лежит архитектура, состоящая из двух видов устройств, а именно процессоров и запоминающих устройств (ЗУ). Запоминающие устройства состоят из битовых ячеек, каждая из которых, как правило, может обладать двумя состояниями. Состояниями, в зависимости от типа ячеек, являются уровни сигнала электрического тока, электрического заряда, уровень намагниченности или светоотражающая способность, соответственно высокого или низкого уровня. Процессор имеет регистры - внутренние, быстродейственные ЗУ, состояния которых процессор может изменять по определенной логике в соответствии с набором команд, имеющихся в арсенале данного процессора. Загрузкой и выгрузкой значений из и в ЗУ является передача состояний из соответствующих ячеек ЗУ в регистры и обратно. Работа компьютера сводится к чтению процессором последовательности команд из памяти запоминающих устройств и к выполнению процессором этих команд, сводящихся к загрузке из ЗУ в регистры, операциям над регистрами по изменению в них состояний и выгрузке из регистров обратно в ячейки ЗУ новых значений, а также непосредственное изменение ячеек запоминающих устройств в соответствии с текущей машинной командой и состояниями ячеек и регистров. Причем регистры также являются запоминающими устройствами.
За одну команду процессор может оперировать с битовыми ячейками памяти, обрабатывая их группами в конечном числе сочетаний. Обычно это обусловлено количеством ячеек, из которых состоят регистры процессора, и системой команд процессора, определяемой при разработке процессора.
Набор операций, которые могут выполняться процессором с регистрами, предполагает, что совокупность состояний ячеек регистров трактуется определенным образом. Процессор может иметь несколько наборов операций, причем каждый набор операции трактует значения регистров определенным образом. В некоторых случаях набор операций для определенных трактовок реализуется отдельным модулем в процессоре - блоком команд или сопроцессором. Таким образом, каждое сочетание ячеек может иметь одну или несколько трактовок. Для каждой трактовки каждого сочетания, логической схемой процессорного устройства определяется: над какими регистрами, какими модулями процессора и какие операции осуществляются. То есть трактовка определяет: множество состояний, которые может принимать данная совокупность ячеек, используемые регистры, набор операций, используемый модуль процессора, которые можно применять к совокупностям, и способ реализации хранения значений и выполнения операций.
С помощью вычислительной техники возможно снятие и формирование сигналов различных физических величин, через параметрически пропорциональные электрические сигналы. Преобразование величин, характеризующих физические (в том числе электрические) процессы в электрические и обратно, осуществляется с помощью физическо-электрических и электрическо-физических преобразователей различной конструкции, в частности усилители тока или напряжения, электродвигатели, генераторы, нагреватели, излучатели, сенсоры физических величин и т.п.
Для снятия и формирования электрических сигналов и представления их в виде состояний ячеек запоминающих устройств используются ЦАП (цифроаналоговые преобразователи) и АЦП (аналого-цифровые преобразователи).
Порядок работы вычислительных устройств, то есть порядок изменения состояний битовых запоминающих устройств, определяется последовательностью команд.
Основными проблемами в этой области являются определение последовательности команд вычислительных устройств, высокая сложность и низкая наглядность и длительность разработки последовательностей команд вычислительных систем, высокая вероятность возникновения ошибок, низкое качество и небезопасность работы автоматизированных комплексов при традиционных способах разработки последовательностей команд вычислительных устройств.
Аналоги:
Существует способ разработки последовательности машинных команд и изменения состояний ячеек запоминающих устройств вычислительной машины, основанный на непосредственном изменении состояний запоминающих устройств (например, перфокарты, перфолента, перемычки из поводков, спайки, прорези, механические дисковые и барабанные устройства). Процессор читает последовательность команд, например перфорированную, на карте по пробитым в ней отверстиям и исполняет прочитанную таким образом последовательность [1].
Недостатки:
- Практически не используется в настоящее время, из-за невероятной трудоемкости и низкой эффективности.
Наиболее близким способом разработки последовательности машинных команд и изменения состояний ячеек запоминающих устройств вычислительной машины является способ получения последовательностей команд путем набора на устройстве символьного ввода (клавиатуре) с одновременным отображением на экране и хранением в памяти компьютера текста на языке программирования с последующей компиляцией компьютером набранного текста в последовательность машинных команд. Язык программирования содержат синтаксис, позволяющий резервировать совокупности ячеек и указать трактовку процессором совокупностей ячеек, состояние которых будет изменено процессором по мере исполнения получаемой последовательности, кроме того, текстовый язык программирования содержит набор символических операций, соответствующий набору операций, доступных для процессора, а также дополнительные операции, эквивалентное действие которых может быть получено в результате действий процессора комбинацией имеющихся в его арсенале операций [2] - прототип.
Следует указать, что используемый в прототипе текстовый язык программирования имеет структурирующие синтаксические средства, позволяющие описывать структурированные совокупности сочетаний ячеек запоминающих устройств, наиболее употребительные совокупности сочетаний ячеек для более эффективной работы вычислительных устройств выполняются в виде регистров процессора, кроме того, арсенал команд процессора дополняется наборами команд пакетной обработки таких регистров.
Последовательность команд может разрабатываться с указанием трактовок процессором совокупностей ячеек, или с построением структурированных совокупностей ячеек, обе особенности прототипа могут использоваться независимо или совместно.
Недостатки:
Способ связан с работой с текстом, которая сама по себе значительно трудоемка, а получаемый в результате разработки текст, по сравнению с графическими схематическими структурами, например блок-схемами, не обладает достаточной наглядностью.
Целью изобретения является:
1) сокращение времени разработки последовательностей машинных команд вычислительных устройств;
2) повышение качества разрабатываемых программных и программно-аппаратных систем;
3) улучшение восприятия и повышение наглядности программных интерфейсов и графических программ, и снижение загруженности текстовой информацией;
4) снижение вероятности возникновения ошибок при разработке программного обеспечения;
5) повышение эффективности процесса разработки за счет автоматизации разработки и автоматизации интеграции программных подсистем и управляемых компьютерами устройств;
6) облегчение интеграции с существующими системами, реинтеграции и перехода на другие платформы;
7) автоматизация тестирования программно-аппаратных комплексов;
8) сокращение количества элементов и упрощение аппаратной реализации электронных устройств.
Указанные цели достигаются тем, что в известном техническом решении, основанном на использовании машинореализованного построения последовательности машинных команд по последовательности действий, указываемых машине человеком, в процессе интерактивного взаимодействия, в котором согласно изобретению, построение последовательности машинных команд производят по графической схеме, по меньшей мере состоящей из фигур, представляющих сочетания ячеек, причем каждое сочетание имеет одну или более трактовок в процессоре, который обрабатывает их группами по одной или более ячеек в конечном числе сочетаний, причем графические фигуры, представляющие сочетания ячеек, графически различают согласно графическому синтаксису, по которому каждой фигуре соответствует своя трактовка сочетания ячеек в процессоре, где в процессе построения машинных команд определяют модуль процессора и вариант машинной команды в соответствии с трактовкой сочетания, определяемой типом графической фигуры, представляющей сочетание ячеек.
Построение последовательности команд складывается из этапов интерактивной разработки и построения на компьютере схемы, путем размещения в виртуальном рабочем пространстве упомянутых фигур, представляющих сочетания ячеек, и символов операций по меньшей мере части из подмножества операций, входящих в арсенал процессора, и этап, на котором проводят соединительные линии между фигурами и операциями, и этап, на котором запускают процесс построения машинных команд, на котором по построенной схеме генерируется последовательность машинных команд. Каждой трактовке процессором сочетаний ячеек соответствуют фигуры определенного типа, что позволяет, без использования буквенно-цифровых символов, и используя лишь средство манипуляционного ввода (мышь, сенсорный экран и т.п.), на этапе создания и расстановки указать трактовку сочетания ячеек определением фигуры, представляющей сочетания ячеек, а машине разработки на этапе построения машинных команд позволяет определить модуль процессора и вариант машинной команды в соответствии с трактовкой сочетания, определяемой типом графической фигуры, представляющей сочетание ячеек. Следует отметить, что способ не требует от средств визуализации и операционных систем возможности отображения символов естественного алфавита и не зависит от наличия в них шрифтов, содержащих символы естественного алфавита, не требует от средства визуализации способности отображать цвета либо оттенки одного цвета, а также не требует средства символьного ввода, достаточно лишь монохромного средства динамической визуализации и средства манипуляционного ввода (мышь, сенсорный экран и т.п.).
Вторым вариантом достижения указанных целей является способ разработки последовательности машинных команд, основанный на использовании машинореализованного построения последовательности машинных команд по последовательности действий, указываемых машине человеком в процессе интерактивного взаимодействия, в котором согласно изобретению, построение последовательности машинных команд производят по графической схеме, по меньшей мере состоящей из фигур, представляющих совокупности сочетаний ячеек, где каждое сочетание ячеек, в свою очередь, является совокупностью сочетаний ячеек, подобно матрешкам, которые интерактивно детализируют, причем интерактивная детализация сводится к машинореализованному интерактивному представлению фигур, так, что в ответ на действия пользователя, фигуру интерактивно преобразуют к детализированному представлению, отображающему сочетания ячеек, вложенные в совокупности сочетаний ячеек, представляемые также в виде фигур, соответствующих вложенным совокупностям или сочетаниям совокупностей, входящих в состав исходной агрегирующей совокупности сочетаний ячеек, при этом производят интерактивное построение линий связи от или к любой из вложенных фигур, представляющих вложенные сочетания ячеек или совокупности сочетаний ячеек с любой степенью вложенности, в любой степени детализированности, и соответственно на этапе построения машинных команд схемы производят построение последовательности команд для передачи и обмена состояний ячеек по отдельности с любой из вложенных в совокупность сочетаний ячеек, с любой степенью вложенности, в любой степени детализированности.
Другими словами, это является интерактивно-визуальным способом формирования структурированных совокупностей ячеек памяти и получения последовательностей машинных команд доступа к ним. Предлагаемый в изобретении структурирующий графический синтаксис заменяет элементы, принятые в текстовых языках программирования, такие как структуры данных, битовые поля, и перечисления, а в качестве селекторов поля, которые в текстовых языках программирования обозначаются точкой или стрелкой, используемые в прототипе для доступа по отдельности к вложенным элементам, в изобретении предлагается интерактивная детализация.
Построение последовательности команд в предлагаемом изобретении складывается из этапов интерактивного построения на компьютере схемы, путем размещения в виртуальном рабочем пространстве упомянутых агрегирующих фигур, представляющих совокупности сочетаний ячеек, и символов операций по меньшей мере части из подмножества операций, входящих в арсенал процессора, этап, на котором производят интерактивную детализацию, и этап, на котором проводят соединительные линии между фигурами и операциями, и этап, на котором запускают процесс построения машинных команд, на котором по построенной схеме генерируется последовательность машинных команд. При этом на этапе проведения соединительных линий предоставляется возможность интерактивного построения линии связи от или к любому сочетанию ячеек, вложенных в агрегирующую совокупность ячеек, представленных фигурами, благодаря чему на этапе построения машинных команд по схеме достигается техническая цель построения последовательности команд для передачи и обмена состояний ячеек по отдельности с любой из вложенных в совокупность сочетаний ячеек, с любой степенью вложенности. В предлагаемом решении, в рамках способа получения последовательностей команд, структурированные совокупности представляются в более широком смысле посредством детализации, что достигается за счет построения последовательности команд для изменения вложенных совокупностей ячеек, поэлементный доступ к которым осуществляется за счет того, что агрегирующие совокупности могут быть развернуты, со степенью детализации, необходимой разработчику, в том числе субатомарно, то есть до битов и элементов перечисления.
Следует отметить, что способ не требует от средств визуализации и операционных систем возможности отображения символов естественного алфавита и не зависит от наличия в них шрифтов, содержащих символы естественного алфавита, не требует от средства визуализации способности отображать цвета либо оттенки одного цвета, а также не требует средства символьного ввода. Для осуществления изобретения достаточно лишь монохромного средства динамической визуализации и средства манипуляционного ввода (мышь, сенсорный экран, и т.п.).
Отличия предлагаемого решения от рассматриваемого прототипа:
Первым отличием является использование устройства графического ввода (мыши, сенсорного экрана и т.п.) вместо устройства символьного ввода (клавиатуры), то есть может быть реализован даже на телефонах, коммуникаторах или персональных цифровых ассистентах.
Вторым отличием является использование графического (вместо текстового) синтаксиса для указания трактовки процессором сочетаний ячеек, при этом в процессе интерактивного взаимодействия с машиной достаточно использования средства графического ввода, причем способ не требует от средств визуализации и операционных систем возможности отображения символов естественного алфавита и не зависит от наличия в них шрифтов естественного алфавита, то есть может быть реализован даже на устройствах с монохромным средством и даже специализированных, поддерживающих предлагаемый графический синтаксис сегментных индикаторах, а также на телефонах, коммуникаторах или персональных цифровых ассистентах.
Третьим отличием является то, что последовательность машинных команд определяется не в соответствии с последовательностью операторов с учетом приоритета, а во-первых, с учетом направленных линий связи, указывающих направление и связь ячеек и операций с ними, и во-вторых, с учетом того, что рассматриваемые совокупности ячеек, значение которых должно быть изменено с использованием значений других ячеек, будет изменено не раньше, чем будут произведены все изменения всех других ячеек, значения которых используются для определения состояний рассматриваемых совокупностей ячеек.
Предлагаемые решения в частных случаях исполнения или при взаимодействии с другими технологиями может потребовать более широкого арсенала средств, например клавиатуры, цветного дисплея, возможностей отображать символы естественного алфавита, ЦАП, АЦП, усилители, преобразователи электрической энергии в другие виды энергии и обратно.
Вариантом частного исполнения элемента второго варианта достижения указанных целей (второго варианта способа) является предложенный способ, в котором согласно изобретению содержатся интерактивные пользовательские элементы прокрутки, или стрелочные элементы уменьшения-увеличения, и дополнительный этап, на котором посредством упомянутых пользовательских элементов убирают или добавляют в область видимости представления вложенных совокупностей ячеек.
Вариантом частного исполнения элемента второго варианта достижения указанных целей (второго варианта способа) является предложенный способ, в котором согласно изобретению сочетания ячеек представляют собой группы по одной или более ячеек в конечном числе сочетаний, которые могут обрабатываться процессором за одну операцию.
Вариантом частного исполнения элемента второго варианта достижения указанных целей (второго варианта способа) является предложенный способ, в котором согласно изобретению сочетания ячеек представляют собой совокупности сочетаний ячеек, где каждая совокупность состоит из сочетаний ячеек и/или совокупностей сочетаний ячеек.
Вариантом частного исполнения элемента второго варианта достижения указанных целей (второго варианта способа) является предложенный способ, в котором согласно изобретению фигуру, соответствующую совокупности ячеек в детализированном виде, представляют как интерактивно увеличенную в размере в момент детализации и внутри нее отображают фигуры, соответствующие вложенным совокупностям ячеек, входящим в состав данной совокупности.
Вариантом частного исполнения элемента второго варианта достижения указанных целей (второго варианта способа) является предложенный способ, в котором согласно изобретению фигуру, соответствующую совокупности ячеек в детализированном виде, представляют как интерактивно обретающую дополнительное поле в момент детализации и внутри дополнительного поля отображаются фигуры, соответствующие вложенным совокупностям ячеек, входящим в состав данной совокупности.
Кроме того, для обоих предлагаемых способов достижения указанных целей, предлагается ряд вариантов частных исполнений.
Оба варианта способа имеют идентичные элементы.
Частным исполнением первого варианта способа является предложенный способ, в котором согласно изобретению на схему добавляют символы операций из множества операций по изменению состояний ячеек запоминающих устройств, входящих в арсенал процессора или доступных для реализации на процессоре, и проводят соединительные линии между символами операций и фигурами, представляющими сочетания ячеек.
Частным исполнением второго варианта способа является предложенный способ, в котором согласно изобретению на схему добавляют символы операций из множества операций по изменению состояний ячеек запоминающих устройств, входящих в арсенал процессора или доступных для реализации на процессоре, и проводят соединительные линии между символами операций и фигурами, представляющими сочетания ячеек.
Частным исполнением первого варианта способа является предложенный способ, в котором согласно изобретению последовательность машинных команд в процессе исполнения изменяет состояния ячеек запоминающих устройств, в том числе входных и/или выходных регистров ЦАП и/или АЦП.
Частным исполнением второго варианта способа является предложенный способ, в котором согласно изобретению последовательность машинных команд в процессе исполнения изменяет состояния ячеек запоминающих устройств, в том числе входных и/или выходных регистров ЦАП и/или АЦП.
Частным исполнением первого варианта способа является предложенный способ, в котором согласно изобретению входными и/или выходным уровнями напряжений ЦАП и/или АЦП управляют и/или наблюдают за подключенными физическо-электрическими или электрическо-физическими преобразователями, посредством чего решают задачи анализа и управления физическими процессами и явлениями, в частности управления технологическими процессами.
Частным исполнением второго варианта способа является предложенный способ, в котором согласно изобретению входными и/или выходным уровнями напряжений ЦАП и/или АЦП управляют и/или наблюдают за подключенными физическо-электрическими или электрическо-физическими преобразователями, посредством чего решают задачи анализа и управления физическими процессами и явлениями, в частности управления технологическими процессами.
Частным исполнением первого варианта способа является предложенный способ, с возможностью построения подсистем, в котором согласно изобретению при интерактивном построении схемы в схему помещают подсистему, то есть последовательность машинных команд, представленную в виде агрегирующей фигуры, где фигура агрегирует интерфейс подсистемы в виде набора портов, при этом обмен информацией с подсистемой осуществляют через порты, представляющие собой набор пинов, каждый из которых является совокупностью ячеек запоминающих устройств, получение и изменение состояний которых подсистемой осуществляют за одно неразрывное, с точки зрения других подсистем, действие, при этом порты интерактивно визуализируют в виде фигур, а пины интерактивно визуализируют с использованием упомянутого графического синтаксиса, при этом интерактивно проводят соединительные линии пинов с другими элементами схемы.
Частным исполнением второго варианта способа является предложенный способ, с возможностью построения подсистем, в котором согласно изобретению при интерактивном построении схемы в схему помещают подсистему, то есть последовательность машинных команд, представленную в виде агрегирующей фигуры, где фигура агрегирует интерфейс подсистемы в виде набора портов, при этом обмен информацией с подсистемой осуществляют через порты, представляющие собой набор пинов, каждый из которых является совокупностью ячеек запоминающих устройств, получение и изменение состояний которых подсистемой осуществляют за одно неразрывное, с точки зрения других подсистем, действие, при этом порты интерактивно визуализируют в виде фигур, а пины интерактивно визуализируют с использованием упомянутого графического синтаксиса, при этом интерактивно проводят соединительные линии пинов с другими элементами схемы.
Частным исполнением первого варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению последовательность команд для подсистемы определяют дополнительными этапами, на каждом из которых на отдельных рабочих пространствах строят схему для каждого порта, причем для схемы каждого порта делают доступными и отображают в виде фигур совокупности ячеек запоминающих устройств, предназначенные для обмена состояниями с подсистемой через соответствующий порт, и совокупности ячеек, являющиеся полями подсистемы, то есть ячейки, состояния которых определяют состояние подсистемы.
Частным исполнением второго варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению последовательность команд для подсистемы определяют дополнительными этапами, на каждом из которых на отдельных рабочих пространствах строят схему для каждого порта, причем для схемы каждого порта делают доступными и отображают в виде фигур совокупности ячеек запоминающих устройств, предназначенные для обмена состояниями с подсистемой через соответствующий порт, и совокупности ячеек, являющиеся полями подсистемы, то есть ячейки, состояния которых определяют состояние подсистемы.
Частным исполнением первого варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению используют объектно-ориентированный анализ и объектно-ориентированное проектирование, при этом класс интерактивно визуализируют упомянутым образом как подсистему с интерфейсом класса, который интерактивно визуализируют в виде портов с использованием предлагаемой графической нотации, причем каждую функцию-метод, представляемую в данном случае как порт, реализуют в виде фигуры со связанными с ней фигурами, представляющими параметры данной функции-метода.
Частным исполнением второго варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению используют объектно-ориентированный анализ и объектно-ориентированное проектирование, при этом класс интерактивно визуализируют упомянутым образом как подсистему с интерфейсом класса, который интерактивно визуализируют в виде портов с использованием предлагаемой графической нотации, причем каждую функцию-метод, представляемую в данном случае как порт, реализуют в виде фигуры со связанными с ней фигурами, представляющими параметры данной функции-метода.
Частным исполнением первого варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению по меньшей мере одну подсистему вместе с описанием ее интерфейса получают автоматизированно с использованием обратной инженерии последовательностей машинных команд, или исходных текстов.
Частным исполнением второго варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению по меньшей мере одну подсистему вместе с описанием ее интерфейса получают автоматизированно с использованием обратной инженерии последовательностей машинных команд, или исходных текстов.
Частным исполнением первого варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению построение части результирующей последовательности машинных команд получают путем добавления в схему подсистемы, последовательность машинных команд которой получают путем компиляции текста программы на текстовом языке программирования, полученного по меньшей мере от одного из четырех источников, а именно текста, набранного посредством устройства символьного ввода, текста, сохраненного на машиночитаемом носителе, текста, полученного в результате компиляции предлагаемой в изобретении схемы, текста, получаемого в результате компиляции диаграммы состояний конечных автоматов.
Частным исполнением второго варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению построение части результирующей последовательности машинных команд получают путем добавления в схему подсистемы, последовательность машинных команд которой получают путем компиляции текста программы на текстовом языке программирования, полученного по меньшей мере от одного из четырех источников, а именно текста, набранного посредством устройства символьного ввода, текста, сохраненного на машиночитаемом носителе, текста, полученного в результате компиляции предлагаемой в изобретении схемы, текста, получаемого в результате компиляции диаграммы состояний конечных автоматов.
Частным исполнением первого варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению часть последовательности машинных команд получают в результате компиляции диаграммы автоматов с конечным числом состояний, которую интерактивно строят в редакторе диаграмм состояний конечных автоматов, таким образом, что входные события, влияющие на состояния конечных автоматов, и выходные воздействия конечных автоматов представляют в виде интерфейса подсистемы, причем в результате компиляции такой диаграммы состояний конечных автоматов генерируют последовательность машинных команд такую, что вместо или наряду с традиционным подходом вызова внешней процедуры обработчика выходного воздействия конечных автоматов генерируют последовательность команд, сохраняющую выходные воздействия конечных автоматов в ячейках памяти, с которыми ассоциированы соответствующие пины портов интерфейса данной подсистемы на основе диаграммы состояний конечных автоматов, чем обеспечивается взаимодействие подсистем такого типа с другими подсистемами.
Частным исполнением второго варианта способа является предложенный способ с возможностью построения подсистем, в котором согласно изобретению часть последовательности машинных команд получают в результате компиляции диаграммы автоматов с конечным числом состояний, которую интерактивно строят в редакторе диаграмм состояний конечных автоматов, таким образом, что входные события, влияющие на состояния конечных автоматов, и выходные воздействия конечных автоматов представляют в виде интерфейса подсистемы, причем в результате компиляции такой диаграммы состояний конечных автоматов генерируют последовательность машинных команд такую, что вместо или наряду с традиционным подходом вызова внешней процедуры обработчика выходного воздействия конечных автоматов генерируют последовательность команд, сохраняющую выходные воздействия конечных автоматов в ячейках памяти, с которыми ассоциированы соответствующие пины портов интерфейса данной подсистемы на основе диаграммы состояний конечных автоматов, чем обеспечивается взаимодействие подсистем такого типа с другими подсистемами.
Частным исполнением первого варианта способа является предложенный способ, в котором согласно изобретению каждую из фигур, представляющих сочетание ячеек или символ операции, дополняют фигурой - коннектором, визуально отличающимся так, что позволяет отличить назначение соответствующих фигуре ячеек по чтению и/или записи, за счет чего обеспечивается визуальное и фактическое определение направления передачи сигналов, характеризующих состояния ячеек.
Частным исполнением второго варианта способа является предложенный способ, в котором согласно изобретению каждую из фигур, представляющих сочетание ячеек или символ операции, дополняют фигурой - коннектором, визуально отличающимся так, что позволяет отличить назначение соответствующих фигуре ячеек по чтению и/или записи, за счет чего обеспечивается визуальное и фактическое определение направления передачи сигналов, характеризующих состояния ячеек.
Частным исполнением первого варианта способа является предложенный способ с коннекторами, в котором согласно изобретению коннектор визуально отображают как фигуру, являющуюся частью линии, в то же время ассоциативно напоминающую разъем, и на схеме, являющейся местом, откуда и куда можно проводить соединительные линии, чем символизируют факт подключения к данному источнику или приемнику соединения, а соединительные линии между символами операций и фигурами, представляющими совокупности ячеек и являющимися приемниками или источниками, проводят из коннекторов и в коннекторы.
Частным исполнением второго варианта способа является предложенный способ с коннекторами, в котором согласно изобретению коннектор визуально отображают как фигуру, являющуюся частью линии, в то же время ассоциативно напоминающую разъем, и на схеме, являющейся местом, откуда и куда можно проводить соединительные линии, чем символизируют факт подключения к данному источнику или приемнику соединения, а соединительные линии между символами операций и фигурами, представляющими совокупности ячеек и являющимися приемниками или источниками, проводят из коннекторов и в коннекторы.
Частным исполнением первого варианта способа является предложенный способ, в котором согласно изобретению в схеме используют соединительные линии, представляющие собой направленные разветвленные соединительные линии, с началом, исходящим из одного источника, то есть сочетания ячеек или результата операции, и одной или несколькими ветвями, каждая из которых достигает целевого приемника, являющегося сочетанием ячеек или входом операции.
Частным исполнением второго варианта способа является предложенный способ, в котором согласно изобретению в схеме используют соединительные линии, представляющие собой направленные разветвленные соединительные линии, с началом, исходящим из одного источника, то есть сочетания ячеек или результата операции, и одной или несколькими ветвями, каждая из которых достигает целевого приемника, являющегося сочетанием ячеек или входом операции.
Частным исполнением первого варианта способа является предложенный способ, в котором согласно изобретению часть разрабатываемых машинных команд осуществляет доступ к состояниям или управление устройством на полевой шине, причем интерфейс устройства при разработке представляют предлагаемым графическим синтаксисом и на основе описания устройства по объектному словарю полевой шины или по спецификации протокола или на основе данных самодокументируемго интерфейса динамического связывания.
Частным исполнением второго варианта способа является предложенный способ, в котором согласно изобретению часть разрабатываемых машинных команд осуществляет доступ к состояниям или управление устройством на полевой шине, причем интерфейс устройства при разработке представляют предлагаемым графическим синтаксисом и на основе описания устройства по объектному словарю полевой шины или по спецификации протокола или на основе данных самодокументируемго интерфейса динамического связывания.
Частным исполнением первого варианта способа предложенный способ, в котором согласно изобретению частью разрабатываемых машинных команд осуществляют доступ к системам хранения информации, через систему управления базами данных, при этом используют систему автоматизированного проектирования баз данных и/или систем доступа к данным, на основе нотации методологии информационного моделирования баз данных, в которой для обозначения по крайней мере части совокупностей ячеек, изменения состояний которых и передачи состояний которых производится построение последовательностей машинных команд, используют предлагаемый графический синтаксис.
Частным исполнением второго варианта способа является предложенный способ, в котором согласно изобретению частью разрабатываемых машинных команд осуществляют доступ к системам хранения информации, через систему управления базами данных, при этом используют систему автоматизированного проектирования баз данных и/или систем доступа к данным, на основе нотации методологии информационного моделирования баз данных, в которой для обозначения по крайней мере части совокупностей ячеек, изменения состояний которых и передачи состояний которых производится построение последовательностей машинных команд, используют предлагаемый графический синтаксис.
Частным исполнением первого варианта способа является предложенный способ, в котором согласно изобретению осуществляют дополнительный этап, на котором проводят запуск результирующей последовательности команд на исполнение в отладочном режиме, при этом отображают виртуальное рабочее пространство со схемой, которой соответствует исполняемая в соответствующий момент последовательность команд.
Частным исполнением первого варианта способа является предложенный способ, в котором согласно изобретению осуществляют дополнительный этап, на котором проводят запуск результирующей последовательности команд на исполнение в отладочном режиме, при этом отображают виртуальное рабочее пространство со схемой, которой соответствует исполняемая в соответствующий момент последовательность команд.
Частным исполнением первого варианта способа является предложенный вариант способа с возможностью отладки, в котором согласно изобретению визуализируют на экране состояния сочетаний ячеек запоминающих устройств.
Частным исполнением второго варианта способа является предложенный вариант способа с возможностью отладки, в котором согласно изобретению визуализируют на экране состояния сочетаний ячеек запоминающих устройств.
Частным исполнением первого варианта способа является предложенный вариант способа с возможностью отладки, в котором согласно изобретению для анализа последовательности команд в процессе отладки подсвечивают часть соединительных линий, на основе чего отличают линии, которым соответствует исполняемая в текущий момент машинная команда, которые уже исполнены к настоящему времени и которые еще только будут исполнены.
Частным исполнением второго варианта способа является предложенный вариант способа с возможностью отладки, в котором согласно изобретению для анализа последовательности команд в процессе отладки подсвечивают часть соединительных линий, на основе чего отличают линии, которым соответствует исполняемая в текущий момент машинная команда, которые уже исполнены к настоящему времени и которые еще только будут исполнены.
Частным исполнением первого варианта способа является предложенный вариант способа с возможностью отладки, в котором согласно изобретению для анализа последовательности команд в процессе отладки подсвечивают символ выполняемой в текущий момент операции, на основе чего отличают операции, которым соответствует исполняемая в текущий момент машинная команда, которые уже исполнены к настоящему времени и которые еще только будут исполнены.
Частным исполнением второго варианта способа является предложенный вариант способа с возможностью отладки, в котором согласно изобретению для анализа последовательности команд в процессе отладки подсвечивают символ выполняемой в текущий момент операции, на основе чего отличают операции, которым соответствует исполняемая в текущий момент машинная команда, которые уже исполнены к настоящему времени и которые еще только будут исполнены.
Третьим вариантом решения поставленных задач является способ разработки последовательности машинных команд или изменения состояний ячеек запоминающих устройств вычислительной машины, основанный на использовании машинореализованного построения последовательности машинных команд по последовательности действий, указываемых машине человеком в процессе интерактивного взаимодействия, в котором согласно изобретению построение последовательности машинных команд производят по графической схеме, по меньшей мере состоящей из фигур, представляющих сочетания ячеек, причем каждое сочетание имеет одну или более трактовок в процессоре, который обрабатывает их группами по одной или более ячеек в конечном числе сочетаний, причем графические фигуры, представляющие сочетания ячеек, графически различают согласно графическому синтаксису, по которому каждой фигуре соответствует своя трактовка сочетания ячеек в процессоре, где в процессе построения машинных команд определяют модуль процессора и вариант машинной команды в соответствии с трактовкой сочетания, определяемой типом графической фигуры, представляющей сочетание ячеек, при этом применяют агрегирующие фигуры, представляющие совокупности сочетаний ячеек, где каждое сочетание ячеек, в свою очередь, является совокупностью сочетаний ячеек, которые интерактивно детализируют, где интерактивная детализация сводится к машинореализуемому интерактивному представлению фигур, так, что в ответ на действия пользователя, фигура интерактивно преобразуется к детализированному представлению, отображающему сочетания ячеек, вложенные в совокупности сочетаний ячеек, представляемые также в виде фигур, соответствующих вложенным совокупностям или сочетаниям совокупностей входящих в состав исходной агрегирующей совокупности сочетаний ячеек, при этом предоставляется возможность интерактивного построения линии связи от или к любой из вложенных фигур, представляющих вложенные сочетания ячеек или совокупности сочетаний ячеек с любой степенью вложенности, в любой степени детализированности, и соответственно на этапе построения машинных команд схемы производят построение последовательности команд для передачи и обмена состояний ячеек по отдельности с любой из вложенных в совокупность сочетаний ячеек, с любой степенью вложенности, в любой степени детализированности.
В качестве примера рассмотрим следующий вариант реализации предлагаемого технического решения. Техническая система, состоящая из стандартного компьютера, включающего монитор и клавиатуру, дополнительно оборудованный манипулятором "мышь", и программного обеспечения, состоящего из стандартной графической операционной системы, поддерживающей упомянутые устройства ввода-вывода, и специальной программной системы, реализующей интерактивное взаимодействие с пользователем.
В данном примере, система отображает на экране инструментальные панели, одна из которых содержит набор кнопок, представляющих набор операций, включающих часть операций из подмножества операцией, входящих в арсенал целевого процессора, и другая инструментальная панель включает кнопки с изображением графических фигур, являющихся представлениями совокупностей ячеек запоминающих устройств. В частном случае каждая фигура (кнопка) в соответствии с графическим синтаксисом определяет трактовку процессором соответствующих совокупностей ячеек. Система организует интерактивную реакцию в ответ на ввод пользователя по перемещению по экрану копий фигур с инструментальных панелей на рабочее пространство, и перемещение фигур по рабочему пространству в соответствии с замыслом пользователя. Кроме того, система представляет возможность организации соединений расставленных в рабочем поле фигур, представляющих собой совокупности ячеек и операции соединительными линиями, с получением в результате таких интерактивных действий схемы обмена и изменения состояний ячеек. По полученной схеме производится компилирование и генерация последовательности машинных команд с использованием компилятора. Действия компилятора сводятся к определению последовательности операций над ячейками, в соответствии со схемой, исходя из условия обеспечения чтения состояния ячейки после того, как все операции, приводящие к изменению состояния данной ячейки, будут произведены.
Текущая версия графического синтаксиса представлена несколькими фигурами:
фигура 1 - графический синтаксис субатомарного элемента данных псевдотипа бит;
фигура 2 - графический синтаксис субатомарного элемента данных псевдотипа именованного элемента перечисления;
фигура 3 - графический синтаксис элемента данных вещественного типа (двоеточие и имя эквивалентного для языка "С" типа не являются обязательными элементами);
фигура 4 - детализатор в положении «абстрагировано» («свернуто»);
фигура 5 - детализатор в положении «детализировано» («развернуто»);
фигура 6 - графический синтаксис элемента данных целочисленного типа без знака (двоеточие и имя эквивалентного для языка "С" типа не являются обязательными элементами);
фигура 7 - графический синтаксис элемента данных целочисленного типа со знаком (двоеточие и имя эквивалентного для языка "С" типа не являются обязательными элементами);
фигура 8 - графический синтаксис элемента данных перечислимого типа;
фигура 9 - графический синтаксис элемента данных структурированного типа;
фигура 10 - детализированный графический синтаксис данных целочисленного типа (двоеточие и имя эквивалентного для языка "С" типа не являются обязательными элементами);
фигура 11 - детализированный графический синтаксис данных перечислимого типа;
фигура 12 - графический синтаксис массива;
фигура 13 - детализированный графический синтаксис данных структурированного типа;
фигура 14 - графический синтаксис обобщенной, зависимой от реализации текстовой строки (в данном случае уточнением типа справа от двоеточия показана реализация для строки, входящей в стандартную библиотеку C++);
фигура 15 - графический синтаксис текстовой строки в таких языках, где строки представляются как в языке Pascal, с использованием двухбайтного счетчика количества символов в начале данных строки (двоеточие и имя эквивалентного для языка "С" типа не являются обязательными элементами);
фигура 16 - графический синтаксис так называемой нуль-терминированной текстовой строки в таких языках, где строки представляются как в языке "С" или некоторых операционных системах, где признаком конца строки является символ с нулевым кодом (двоеточие и имя эквивалентного для языка "С" типа не являются обязательными элементами);
фигура 17 - графический синтаксис элемента данных, являющегося указателем на область памяти, содержащую элемент данных целочисленного типа без знака, причем для обозначения типа данных элемента, на который ссылается указатель, следует использовать предлагаемый синтаксис, а для обозначения указателя на указатель на элемент данных следует использовать соответственно две и более подобных стрелке элемента синтаксиса в правом верхнем углу элемента (двоеточие и имя эквивалентного для языка "С" типа не являются обязательными элементами);
фигура 18 - графический синтаксис элемента данных вещественного типа двойной точности (двоеточие и имя эквивалентного для языка "С" типа не являются обязательными элементами);
фигура 19 - графический синтаксис структурированного элемента данных, называемого хэш, известного также под названием «карта» или «ассоциированный массив» (внутренние элементы отображаются аналогично элементу данных структурированного типа);
фигура 20 - графический синтаксис обобщенного универсального определяемого реализацией мультитипового элемента данных, как правило, реализуется в виде объединения в паре с элементом перечислимого типа, указывающего, какой именно элемент данных объединения и тип используется, а следовательно, и набор допустимых операций и порядок обработки, в состав данного элемента также могут входить дополнительные элементы данных (внутренние элементы, из набора допустимых, отображаются аналогично элементу данных структурированного типа);
фигура 21 - коннекторы в состоянии «не подключено» (константные в данном контексте элементы данных не имеют входных коннекторов);
фигура 22 - коннекторы в состоянии «подключено»;
фигура 23 - коннекторы агрегатных типов в состоянии «не подключено» (константные в данном контексте элементы данных не имеют входных коннекторов);
фигура 24 - коннекторы агрегатных типов в состоянии «подключено»;
фигура 25 - графический синтаксис элементов, представляющих унарные операции;
фигура 26 - графический синтаксис элементов, представляющих бинарные операции;
фигура 27 - графический синтаксис элементов, представляющих тернарные операции;
фигура 28 - комплексный пример, описывающий целостную систему, включающую некоторые из выразительных синтаксических средств, входящих в арсенал предлагаемого графического синтаксиса;
фигура 29 - пример, демонстрирующий некоторые возможности графической типизации, этот пример является копией предыдущего примера (фиг.28), отличающийся от него только отсутствием необязательных элементов, а именно разделителей и текстовых имен типов, что без уменьшения информативности достигается за счет графической типизации (имена эквивалентного для языка "С" типа отсутствуют, трактовка процессором указывается графически согласно изобретению), еще одним отличием является использование одного жгута передачи агрегатного типа данных вместо двух линий связи.
Подробнее, в примере рассмотрим простейшую типовую задачу для систем автоматизированного управления и достаточную для демонстрации основных возможностей изобретения, а именно подсистему с двумя входным и выходным портами и вложенной подсистемой, в задачу подсистемы входит получение данных из входного порта, преобразование их по выражению result=(a+x)(b+x) и передачу результата во входной порт вложенной подсистемы, и передачу значения выходного порта вложенной подсистемы напрямую в выходной порт содержащей ее рассматриваемой подсистемы, где значения величин хранятся в соответствующих ячейках.
Построенная схема в соответствии с требованиями задачи в соответствии с правилами предлагаемого графического языка показана на фиг.28 или идентично фиг.29. Интерфейс схемы состоит из первого и второго портов. Значением пина result первого порта является выражение result=(a+x)(b+x). Пин result второго порта равен значению, полученному из второго порта блока block1, причем, поскольку тип пина является структурой, то есть агрегатного вида типа, линия связи является утолщенной. Пин data первого порта блока block1 является структурой, которая на примере показана в детализированном состоянии, каждое поле которой заполнено значением х и результатом выражения того же выражения, значение которого присваивается пину result первого порта схемы.
Схема данного примера после интерактивного построения на машине и запуска процесса построения машинных команд приводит к построению последовательности команд, которая в обобщенном виде, используя в качестве машинных команд символические имена заглавными буквами, может быть следующей:
ЗАГРУЗИТЬ port1.x
ДОБАВИТЬ port1.a
ПЕРЕНЕСТИ В СТЕК
ЗАГРУЗИТЬ port1.x
ДОБАВИТЬ port l.b
УМНОЖИТЬ НА ЗНАЧЕНИЕ ИЗ СТЕКА
ВЫГРУЗИТЬ В block1.у
ЗАГРУЗИТЬ port1.x
ВЫГРУЗИТЬ В block1.x
ЗАГРУЗИТЬ block1.out
ВЫГРУЗИТЬ В порт2.result
Таким образом, использование предлагаемого изобретения приводит к достижению целей: сокращение времени разработки последовательностей машинных команд вычислительных устройств; повышение качества разрабатываемых программных и программно-аппаратных систем; улучшение восприятия и повышение наглядности программных интерфейсов и графических программ, и снижение загруженности текстовой информацией; снижение вероятности возникновения ошибок при разработке программного обеспечения; повышение эффективности процесса разработки за счет автоматизации разработки и автоматизации интеграции программных подсистем и управляемых компьютерами устройств; облегчение интеграции с существующими системами, реинтеграции и перехода на другие платформы; автоматизация тестирования программно-аппаратных комплексов; сокращение количества элементов и упрощение аппаратной реализации электронных устройств.
Источники информации
1. Доннальд Э. Кнут. Искусство программирования // СПб. издательский дом Вильямс ББК 32.973.26-018.2я75 К53 УДК 681.142.2 (т.1, с.185).
2. Ахо Альфред В., Сети Рави, Ульман Джеффри Д. Компиляторы: принципы, технологии и инструменты.: Пер. с англ. - М.: Издательский дом «Вильямс», 2001. - 768 с.: ил. - Парал. тит. англ. (с.25).