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

кандидата технических наук
Толстохлебов, Сергей Владимирович
город
Москва
год
1990
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Построение расширяемого языка конечного пользователя в системе порождения пакетов программ»

Автореферат диссертации по теме "Построение расширяемого языка конечного пользователя в системе порождения пакетов программ"

Л <> , •:.

АКАДЕМИЯ НАУК СССР ИНСТИТУТ ПРОБЛЕМ ШЙОРНАТЙКИ

Еа правах рукописи

ТОЛСТОХЛЕБОВ Сергей Владимирович

УДК 681.3. 06

ПОСТРОЕНИЕ РАСШИРЯЕМОГО ЯЗЫКА КОНЕЧНОГО ПОЛЬЗОВАТЕЛЯ В СИСТЕМЕ ПОРОЯДЕНИЯ ПАКЕТОВ ПРОГРАММ

05.13.11 - Математическое и программное обеспечение

вычислительных машин, комплексов, систем и сетей

Автореферат диссертации на соискание ученой степени

кандидата технических наук

Москва - 1990

- г -

Работа выполнена в Институте проблем информатики АН СССР.

Научный руководитель - кандидат технических наук,

доцент Ильин В. Д.

Официальные оппоненты - доктор технических наук, профессор

Доступов Б. Г., кандидат технических наук Кузнецов Е Е.

Ведущая организация - Научно-исследовательский центр

электронной вычислительной техники, г. Москва.

Защита состоится и,га>'И% 1990 г. в часов на заседайиии специализированного совета Д003.56.01 Инсти-, тута проблем информатики АН СССР по адресу: ГСП-1, 117900, Москва В-344, ул. Вавилова 30/6, тел. 135-98-14.

С диссертацией можно ознакомиться в библиотеке Института проблем информатики АН СССР.

Автореферат разослан '"/<Г " _ 1990 г.

Ученый секретарь специализированного совета

кандидат технических наук Гринченко С. Е

...•'•..""' - 3 -

•■' j OBIWi XAPiKTEPUCTKXA РАБОТЫ

- '•• j

' P i'/i I

I Актуальность те»«л.

Растущая инфортткзация общества вовлекает в процесс автоматизированного росзиия задач все новь'з прэдттниэ области (ПО). Такие новые ПО, как правило, является слабо фэрмадизовпИНЬЕ-ш, что создает значительные трудности при их автоматизации. Кроке того, наблэдазтся острый дефицит прикладных программистов. Единственным выходом из создавсэгося положения является вовлечение сагссс конечных пользователей - специалистов в своей ПО з процесс автоматизации свои:; ПО. Sic обуславливает богьс^тэ актуальность проблеет разработки nporpaiiücibcc средств, нацеленных на использование конечными пользователями-непрогра.\:уиста:/ц при автогатизмсш репзния своих задач.

Разработанная в ИЛИ АН СССР систем порождения па'сотов программ нацелена на гзтояатизацк-з построен!л прогрв^зик систем, ориентировали!« на конечного пользователя, для областей с кассовым характером прикладной деятельности. Представлялось целесообразным разработать и реажзовать средства автоматизации построения прогрг^ашх средств разработки приложений силшш конечных пользователе*!-непрограммистов г. составе системы порождения.

Цель работы.

Целью диссертационной работы язляется исследование г разработка средств построения программных средств роврпбот-ки прилогзний силами конечных пользователей-шарогрз:£?£!с-тов.

В соответствии с поставленной целью основшзд! задачам: диссертационной работы являются:

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

2. Разработка способа построения программных средств разработки приложений силами конечных пользователей а системе породдения пакетов програьзс

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

Научная новизна.

Диссертационная работа содержит следующие основные научные результаты:

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

- предджэно использовать для построения языковых средстЕ разработки прилоганий конечной пользователями син-татеичэские макросы с измененной схемой реализации;

- разработана новая схема реализации сиктаксичес:шх ыакроеов, ориентированная на интерпретируемые интерактивные языки с динамическизд! данными;

- для контроля контекстных условий в распирякцях язык командах в метаязык описания шаблонов команд введена возможность задания атрибутов типа аргументов команд;

- разработан и реализован кнтераотивный расширяемый язык, нацеленный на ранение задач учета.

Практическая ценность и реализация результатов.

Основные результаты диссертации были получены при выполнении следующих НИР и ОКР:

- НИР - "Исследование а разработка генераторов прикладного программного обеспечения интерактивных процессов обработки и образного представления данных (ИГЕН)" (И гос. регистрации 01840064899);

- ОКР - "Программные средства генерации интегрированных пакетов с заданным набором функций (ГЕНПАК)" (по постановлению ЦК КПСС и ОЫ СССР от 23.01.86).

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

Средства построения языка конечного пользователя явля-

ются составной чаотьп систем ГЕНПАК, ориентированной на порождение пактов програ?и для учета и планирования. Система порогденил ГЕНПАК прннлта Государственной гагасспей и передана в Государетгонной фонд алгоритмов п прогреем в 1988 году.

Апробации.

Основные результаты диссертацкоансЛ работы догадывались на первой Всесоюзной пгахе-сепшаре "Разработка и внедрение з народное хозяйстео персональных ЭЕ1Г (1£шск, 1988 г.), на пятом заседании целевой подгруппы "Ргсшгряеьщэ средства программирования" (Кипннев, 1983 г.), на Всесоюзном научно-техничесгаш совещании "Программное обеспечение новой информационной технологии" (Калинин, 1989 г.), на научно- техничесгах семинарах в ИЛИ АН СССР (1985 - 1989 гг.).

Публикации.

По теме диссертации опублкгавано 6 работ.

Объем и структура работы.

Диссертационная работа состоит из введения, 4 глаз, заключения, списка литературы (55 наженований) и приложения. Объем основной части составляет 92 стр. гггзпюппеного те1сста.

СОДЕРШШ РАБОТЫ

Во введении обоснована актуальность те!5Л, сфор!!улиро-ваны цели и задачи исследование, дана краткая характеристика работы и полученных результатов.

Глава 1 посвясэна анализу программных ерздетв, чринэ-няе>.<ых конечными пользователям в процессе автоматизации своих задач, и способов их построения.

В последнее время активно развивается програ?<^пъгэ средства разработки приложений, нацеленнвэ на раз работ ¡су с участием конечных пользователей-непрограннистов. Ьйпзо еы-делить следующие категории таких программных средств: гепэ-

раторы прилогэний, процессоры естественного языка или ограниченного естественного язька, электронные таблицы, расса;-

рязьъзэ язьки.

Перечисленные програгаашэ средства ргсснзтризаотся с тоша: зрения категорий пользователей, степени поддерка: работы с конечными пользоватолшыа-иапрограм^азгсаз, схроты применения, а тшакг удобства развития зулх средств в прэ-цэссе их использования.

К недостаткам генераторов прилосэний изию откэстк:

а) квпроцедуркыз языка кшотся в составе геьоратора только для небольшого числа узких, хорошо изучения областей, таких как генерация отчетов, мзюэ к т. д;

б) ватрапваеььз в генераторы ьнутрзнниз язцзд программирования но наделены на работу с конечными пользователн-ыи-непрогрггАЗштаьг;;

в) при использовании генераторов прилог-знии не про5;с-ходит накооаэния профессиональных знаний пользователей в понятно« для ганечных пользовагелэй-иепрограьазюгов воде.

Неоднозначность, присуцая человеческому пенку, ограничивает возьяшосхь применения естественного языка для г-з-3-работки приложений.

К достоинства подхода со стороны процессоров естественного или ограниченного естественного языка кокно отнести ■.¡«¡¿ох-лость настройки язьп;а на конкретную проблеьшую об-.тг.ть.

Недостатком данного подхода, на сегодняшний день, яв-слабость возможностей повышения уровня языка.

-Основной особенностью электронных таблиц является их •^алгоритмический харастер, посколы;у явно задается только описание взаимосвязей мэдду содержимым клеток. С одной стороны, зто снимает многие препятствия при изучения электронных таблиц пользователями по сравнению с традиционными ал-гор^.кмческиыи язы;;а\:л, а с другой - позволяет использовать таб .ичную обработку для ведения прикидочных расчетов и реи:- ,-л эвристических задач, что так же облегчает освоение ъозьэсностей электронных таблиц конечными пользователями.

К недостаткам электронных таблиц можно отнести:

а) узость сфзры пржоизнкя, ограниченной вадачаш табличной ОбрлбОТКИ;

б) ограниченные возюззгастн настрой!« па териинолапгл предметной области.

Гдлю выделить четыре типа пострсэнкч расггфламых языков, нацеленных на работу с гансягн?^! пользователям: языки не содэрлгщпе ядра, пз'.';л со Естроепянм в гэхаккш.глн распярэния, расшяряеикэ языки на осново традиционных макросредств, расЕЗфЯ915го языки на Осаэ синтекснчэских >якро сов.

К недостаткам первого подхода глгдо отнести:

а) для расЕкрения/пзкэкэния язшэ, пэо5ходп;о участи-. профзссионзльного программиста;

б) отсутствие базового уровня повитает трудое^хют* построена и развития языка.

Языки со встроеннк-л в яви: гахоягзши рассфзнля т.*э*г в настояние врэыя наибольшее распространение, в чгслэ нал более ярких представителей "огз:о назвать Smalltalk и йорт. К id недостатка»«, с точга! зрения нацеленности на пользователей" непрограммистов и удобства развития, ошю отнести:

а) слогшость механизмов расширения, подцеретвакпщгх ? первую очередь расширения в области данных, и рассчитали»■ на использование опытным, квадфщировашшы програ^ггстом:

б) недостаточную информативность для пользователей- непрограшистов стандартных диагностических сообп*эний;

в) встроенность механизма расширения в язык ыожет усложнить изучение и использование расвиренного языка конечными пользователями-непрограммистами.

К третьему типу расширений относится расснрание посредством универсальных макросредств. Основным достоинством универсальных макропроцессоров является то, что они могут применяться для расширения любого языка прогрэгггцровадш.

Нэнацеленность универсальных макропроцессоров на лексику, синтаксис и семантику конкретного языка nporpsi^ipo-вания не дает возможности производить достаточно подлую проверку иакровкзовов, затрудняет привязку дкагпосигеэскЕГ сообщений к предложениям исходной прогрл^у, п пэ ксзпоезз?

- 8 -

достичь нуг.д;оЛ степзпи гибкости применения.

В сшзтачсичоских ¡,:г-:росгх при обргбоисэ ьгафовызова производится просорка соответствии описания раздэлотелзЯ н сшг&азгкзс^гз 1сгассов £ор:альннх параметров ьггкроопредоле-шгл, оппсшяшх в сгбдэне ц^фовызова, раздзлгтелям и фактически парг:^этрг^1 в ^фовниова.

Синтаксические ь^кропроцэсссры, и^вецнз доступ к таб-

яз-люеого процессора, позеолл!сг проверять контекстное условна: огкианиость идентификаторов, согласованность пара-к:этроз по типу и т. д..

Си1та15спчес|с:;з 1эдросы позвохяст снять с разработчика ьгцфсопр'^дохзжЛ ответственность за проверку правильности 1а:ф0ЕЫ50ва н бозхогг.л'ь ее на !.:зкропроц„>ссор. Кро^з того они позволяют Бцдазгть диагностические сообцзнкя в терминах !2.кро21зоЕа, а нэ а тер^а:ах сгенерированного текста. Конечна подьзог^тода, работая с ¡«зефэшшу яэьесоы, в прин-ц::пз 1;о::эт и из знать о применении шгфопроцессора.

Езобходн.\зэ опзтить значительнее повышение сложности синтаксических ьакропроцэссоров, допусками расширения в области данных к операций над ними. Такое усложение суглет область прниенекш: подобных изкросредств.

К числу достоинств синтаксических макросов полно отнести:

а) синтаксические макросы позволяет сравнительно легко распирать язык;

б) вылесеиносТь ¡.'.зханиш/л распырения из состава языка облегчает освоение и применение языка конечным пользователем;

и/ синтаксические ыакросы облегчают проверку синтаксиса. а в ряде случаев и контекстных условий, во входных командах;

;•) подчеркивается настройка на терминологию выбранной нредь^тной области;

д; сфера применения синтаксических макросов не ограничивается разгкамн какой-либо одной предметной области;

') синтаксические макросы поддерживают формализацию и накопление в ЗШ профессиональных знаний конечных пользова-

телей;

л) возможно значительно повыс.чть уровень .чепроц-з дур-кости языка путем его последовательных рзссфзк:^ з области операторов и управления.

Следующие причини ограничивав в настоящее время прн-меиенке сшигиглчеаеп: макросов для построения язглсов ко-нечннх пользователей-непрограм?£ис?оз:

а) известно, что для пользователей особенно удобпь-л: пзляотся языки с динамический! данными. Дда тглзгс языков при традиционной схеме реализации млчфссов, тогда обработка макровызовов производится до начала вкшолнзшш програг.?!*, затруднена проверка ¡сомтегсстишс условий в мз.}фоВ1зовах;

б) языки, ориентированные па конечных пользователей, доллш обеспечпзать работу на терминале в питераотпзном ре-п-ме, но генерация текста, происходят при зегэне ышсровц-зовов в обичной схеме реализации, !<ало подходам для интерактивных языков;

в) пользователя языка для его рассгреиил иесб"од;п1Э дополнительно освоить макропроцессор - програ^лое средство

со своим языком, руководством, есзмо'гностя'С! отладит!.

На основе проведенного анализа ставится задача равра-ботга» схеш реализации сиитэлссических {Э-'фосов, ориентированной на построение языков конечных пользователей.

Такая схема должна бить наделена на иктератспЕНме языки с динамические данными, что обеспеч:гг удобство пр:в*ене-ния расширенного языка коиечньаш пользователями н позволит вести работу в пригагдочном рвткэ. Кроме того, требуегня схема доллна поддер.тивать возмогшость лепоэго расплгрешш с участием конечных пользователей, аладес™сс основа? п программирования.

Во второй главе предлагается способ построения языгсо-вых средств, нацеленных на применение конечными пользователям! при автоматизации предметных областей, в системе порождения пакетов программ.

Лается общая характеристика рззработаиной в ИШ АН СССР системы ГЕНПАК породдения пакетов прикладных про грало

&кя рзшекя кассовых задач учета и' агащрованкя. Кратко спясызазтся две ссновшзэ кс:шокенти систол ГЕНПЛК - база данных табличных структур (хаосов) и интерфейсная компонента.

В состав продущфуеша системой ГЕШ1АК пакетов могдт входить ¡«оппонента ЕЫЧКОЛЯГЕЛЬ, представляйся собой специальную систему программирования 'на табс-ориентированнои языке ШЧ, нацеленная на поддержу решения, задач учета конечным пользователем - специалистом в области учета

Описывается реализованный в языке ШЧ компоненты ВЫЧИСЛИТЕЛЬ способ построения программных средств конечного пользователя как распираемых языковых средств на основе синтаксических макросов с измененной схемой реализации.

ШЧ является языком манипулирования. данными, хранящиеся в табс-базе данных системы ГЕНПЛК. V

ЕЫЧ - шгерпрэтируемыД расширяемый интерактивный язык. Он состоит,!» ядра - базового уровня - и набора расширявши команд.

ЕНЧ является языком с динамическими дашшки: перемзн-ньэ многих классов в течение одного сеанса работы ыогут Сагь связаны с данными различных типов.

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

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

ТАРИФИЦИРОВАТЬ 6'МАТЕРИАЛЫ' ИЗ "СКЛАД N5" ПО "ЦЕНЫ" ,

гдэ G - столбец, а в казычках даны шэЕа таблиц. Для -упол-зепил слгяого суммирования система распмрения позволяет создать гсюговариантн^о команду СУ1-2П1РОЕАТЬ, например:

СУММИРОВАТЬ G'ПРОДАЛИ' ПО G' ДАТА ПРОДASÍ' С 1\1\90 ПО Sl\l\90 или

CYÍ.C-GÍP G' ПРОД*' 0 100 ПО 1000 В С1.1 .

Расширенный системным аналитиком язык позволяет пользователю пакета - непрограммисту автоматизировать решение задач в своей предметной области. Тем самым компонента Ш-' ЧЮЛИТЕЛЬ придает ГЕ1ШАК- пакетам статус генераторов прило-гений.

Подсистема расширения поддерживает расширение в области операторов и управления. Создание самых разнообразных структур данных обеспечивается средствами табс-базы данных системы ГЕНПАК, в силу чего отпадает необходимость в средствах расширения з области данных и операций над ниш.

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

В предлагаемой схеме генерации текста при встреча макровызова не происходит, макровызов - расширяющая команда -реализуется посредством вызова подпрограммы на языке ШЧ, в которой такие шгут использоваться расширявшие команды.

Контроль разделителей, классов аргументов, ¡контекстных условий и допустимости значений аргументов производится в процессе выполнения при встрече макровызова - расширяющей команды, обработанные аргументы макровызова передаются реализующей его подпрограмме в качестве параметров.

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

а) хотя ЕЫЧ является языком с динамическими данными, тот факт, что обработка макровызовов производится в процессе выполнения, позволяет возложить ответственность за про-

верку контекстных условий и допустимости аргументов на сам интерпретатор языка (в мэ;.:ент встречи ьакровызова иктерпре-татору известки все характеристики аргументов);

б) в предлагаемой схеме роль языка написания макроопределений играет сам расширяемый язык. Зго прпводиг к облегчения освоения и использования системы расширения - для того, чтобы написать подпрограмму, реализукцуа рассиряхщуэ команду, пользователю подсистем расширения не надо изучать ецэ один язык;

в) упроц^ется реализация системы расширения: нет необходимости раализовывать специальный язи: написания ».акросов - сшшаэтся проблеш, связанные с генерацией уникальных ¡.меток, реализацией пзрзмзннлх периода ¡.агфогекэрации и т. п..

Интерпретатор расЕГ.грлемэго языка написал на яз'-гке Пгс-¡салъ. Исходные тексты имзот обгви около 15 тысяч строк. СЗъэы подсистемы расширения равен 8 процентам от обьема интерпретатора.

В главе 3 рассматривается базовый! уровень языка Е1Ч.

Ядро языка содер;жг базовые средства обработки данных, хранящихся в табс-базе данных системы ГЕППАК, и средства организации процесса вычислений. Средства базового уровня нацелены на поддержание привычных для пользователя пшюта кавы;»в работы и построение дружественного к пользователя интерфейса.

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

[<ИЕТКА>: ] [<ВЫРАЖЕНИЕ ИЛИ К011АНДА>] [<К012й!НТАР1Ш>] . Взод некоторых команд (запуска или возобновления ВЫЧ-подпрограмм, распнфящие команды) переводит интерпретатор я виз в реп« выполнения созданных заранее на языке ВЫЧ программ, так сэ храняцихся в табсах табс-базы данных.

Интерактивный характер работы позволяет поддеркать работу пользователя посредством интерактивных подсказок, воз-1эгиости оперативно диагностировать ошибочные команды и ис-правллть их. При иаходцени" оинбок в ВЫЧ-подпрограммах

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

Так как ЕЫЧ является языком, построенным над табс-ба-зоЯ дзкянх, то в качестве базовых объектов в нем выступалг элементы таблиц. Три типа элементов таблиц - строка, столбец и клетка - выделены в качестве основных. Элементы таких типов могут участвовать в операциях и получать значение в результате выполнения операции. Еолысшство операций «зг-са имеет агрегатный характер.

ЕЫЧ позволяет указывал-, табличные элементы кок ксыером - координатой, что особенно удобно при работе в интереютз-'яш регнмэ, так и по заголовку строки/столбца, что оО-сг?• чнвает позигэние наглядности ЕЫЧ-лодпрограум и их непагп::::-мссть ст конкретных кссрдикат.

Для хранения промежуточных даннчх и для передачи да1: нкх между различном табсами кспольгуктгся контейнер", чг"\т стазяпкгпе собой табличные эле:.<енты, сугествутглю

от обрабатываемой таблицы. Применение контейнеров ш.аго-ляет пользователю вести припадочные расчеты, не гатригми-:-«-'"ю содержимого таблиц с данными.

Работал в ШШС.'ШЕЛЗ, пользователь все время пп

экране через табличное окно обрабатываемую таблиц-/. Результат выполнения вводимых командшк строк, затрагивайте содержимое текущей таблицы, показываются в табличном.о:шо. Контейнеры также визуализируются на экране.

Визуализация основных обрабатываемых объектов в ГНЯС1С-ЛЛТЕЛЕ - таблиц, контейнеров - позволяет создавать у пользователя иллюзию работы в привычкой для него обстановка. Визуализация реализуется средствами интерфейсной комгононтн системы ГЕНПАК.

ЯДро языка включает арифметические и календарные ок<= рации и функции над табличными элементами (строка»,и, столбцами и клеткш.<и), сложные условия над табличны"! элементами, команды манипулирования таблицами в ТБД, »манипулирования визуальным образом таблицы, задания точности вычислений, определения области действий, открытия внесших таблиц, просмотра контейнеров, условного выполнения, перехода, вво-

да/выгода, работы с подпрограммами. Для большого удобства при шп-ерактивной работе у многих команд существу допус-ти12^э сокращения имени до трех-пяти бу!Ш.

Еозюгаость работы ВЫЧИСЛИТЕЛЯ в рекш,:о выполнены ШЧ -подпрограмм позволяет пользователе са:-:о,\:у разра5атывать программ решения часто встречающихся задач обработал таблиц.

Глава 4 посвящена описание подсистем расширения языка ШЧ. Подсистема расширения языка ВЫЧ реализована как надстройка над интерпретатором языка базового уровня. Сна вынесена за пределы языка, что облегчает освоение и применение языка конечные пользователями.

Для построения новой расширяющей команды необходимо описать ее саблон, в котором указывается возкшгшэ разделители, синтаксические классы аргументов в команде и необходимые контекстные условия, и написать реализующую расгофя»-шуа команду подпрограмму на расширяемом языке.

ВЫЧ-подпрограммы, реализующие расширяющие команды, кроме параметров тех типов, которые используют обычные ВЫЧ-подпрограммы, имеют право использовать так же и формальные параметры типа часть командной строки. В формальные параметры этого вида в процессе разбора расширявдей команды пэре дамтся целиком выражения, условия языка ШЧ, а такгке ссылки на табличные элементы.

При встрече в командной строке переменной типа часть командной строки интерпретатор языка переключается на чтение входных лексем из этой переменной до ее исчерпания То есть, если в переменную типа часть командной строки было передано выражение языка ВЫЧ, то при встрече этой переменной интерпретатор языка, переключившись на чтение лексем из переменной, прочтет переданное выражение и выполнит его.

Дня хранения информации о расширяющих командах используется специальная таблица тзбс-базы данных. На кавдую рас-гзфящуа команду в этой таблице отводится одна строка, в которую записывается имя команды, допустимое сокращение и^эшз. сз&сон команды, описание назначения команды и имена

ксполнлкц;пс подпрограмм.

Распознавание накровызоза - ргсптрпицэь кзмэлды - г.?-дется по ключевому слову - имэкп команды. Сели интерпретатору языка не удается интерпретировать очередную ио-гпдпуя строку, как кшенду базового уровня, он проводст поиск в теблщо описания ртсскрентй на совпадение с гмэкэм расглфя-щэй гаианды. Еслч такая команда найдена, кнтерпрэтг.тс;. гз-злекаэт из таблицы саблон и Екзязгэт подсистему ргепфзния для разбора гсог.'зидн. При успешом гаверезнии разбора проке-ходи? передача разобранных пэрг^етрои к стендпргпЕЗ изо: подпрограммы на языке ЕКЧ.

Для залксп пгблокоа расширяй^: команд компонента ЕЫ-ЧГЮЛРГГБЛЪ предоставляет специальный дегинзрзтггвшй кэтезв!.*-1'этвчз1?а позволяет указыватъ возмлгнмэ разделитет, сиктач ■ спческхэ классы аргументов в кшандо и задаг-зть необз:од'г.~.'э контекстнкэ условия. 1£зтаязк: оржптиро&ш па струга ури базового уровня язнка и мо.тзт быть савозн польвоватег имеюзм тшиапъзьй опыт з программирования.

Описание паблона распнряхцэй гаманди из мотаязклэ состоит из списка описаний объестов, входго^сс в ко'акду. Гг:' объзотом понимается аргумент когапда с возкогзо пркквэшзп-ным к нему разделителем. Для кагщого объзота кэпю садгл-синтаксическЕй класс аргумента, допустимыз атрибуты типа аргумента, и указать, могэт .та этот объект быть опуцзн.

Допустхаши статанскчесюаз! классами аргументов при вызове рассзфякцей гажандь' является: вырапение языка, условие языка, имя таблицы, у!сазателъ адреса табличного элемента, табличный элемент, значение.

Эти допустимые классы аргументов являются с1шта:клг:зо-кими понятия?,21 штаязыка и обозначается русскс51 заглгз'пг.-^ буквами.

Задание контекстных условий в рассиряг^ас коюпдгх (условия на тип аргументов, условия согласованности аргументов в команде) в метаязыке обеспечивается указанием атрибутов типа аргументов. Значения атрибута типа указываете,-в круглых скобках за синтшссическич покг>т;:з!М.

Для выражений, условий языка, ухнзателеЯ адреса п

личных элементов, выступахщк в качестве фактических параметров, допускается следующие значения атрибута типа: строка, столбец, клетка (значение столбец для вырагзния означает, что это выражение над столбцами). Штерпретатор языка при проверке в момент выполнения моггзт установить тип аргумента, даже если в его состав входят динамические данные.

Допустишми значениями атрибута типа для класса значений являются число, дата, текст.

Явным перечислением в описании объекта некоторого мно-гаства значений атрибута типа задается обязательность принадлежности значения атрибута типа соответствующего фактического параметра к указанному ыногяству.

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

Шаблон команды ТАРИФИЦИРОВАТЬ имеет вид: А(G), <П0> A(G), <ИЗ> Т , где А - указатель адреса, Т - таблица. Для команды СУММИРОВАТЬ шаблон выглядит следующим образом: A(G,L), [<П0> А( 1)], [<С> 3(Д,Ч)], [<П0> 3(3)], [<В> 3(C)] (L - строка, 3 - значение, Д - дата, Ч - число, 3 - элемент, С - клетка).

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

В конце главы приводятся примеры описания расширящих команд и ВЫЧ-подпрограммы, их реализующими.

В заключении сформулированы основные результаты диссертационной работы и намечены направления дальнейших исследований.

- 17 -

В приложении приведены материалы об использовании результатов диссертации.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

В диссертации получены следующие основные результаты:

1. Проведен сравнительный анализ программных средств, применяемых в настояцее время для разработки приложений с участием конечных пользователей, с точки зрения категорий пользователей, степени поддержи работы с конечными пользователям- непрогра!.!?гиста»я1, сироты применения и удобства развития.

2. Предложено использовать для построения в системе порождения пакетов програ)<м языковых средств разработки приложений силам! конечных пользователей синтаксические напроси с измененной схемой реализации.

3. Разработана новая схема реализации синта:сспчее;сгл макросов, ориентированная на интерпретируете интерактнзнкэ язшл с динамическими данными. Предлагаемая схема упрогдет реализацию языка и системы расширения, и приводит к облегчению освоения и применения языка и систем расслоения пользователями. Разработанная схема полет пспользсг.атьсл при построении языков конечных пользователей для областей с массовым характером прикладной деятельности.

4. Для контрода конте кстных условий в расширяющих га-мандах в метаязык описания шаблонов команд введена возможность задания атрибутов типа аргументов команд.

5. Разработан и реализован интерактивный расширяемый язык, нацеленный на решение задач учета, и ориентированный на работу с конечны,! пользователем-непрограммистом. Подсистема расширения языка позволяет осуществлять расширение силами конечных пользователей, владеющих навыками программирования. Разработанные средства являются составной частью системы породдения пакетов программ ГЕНПАК. Система ГЕНПАК принята Государственной комиссией и передана в Государственной фонд алгоритмов и программ в 1988 году.

- 18 -

Ссловнио похолзнкя диссертации опубликованы в следую-С« работал:

1. Ильин Е Д., Куров Е Е, Толстохлебов С. Е псовые еычеслзяия в КГЕЯ-пакетах прикладных программ // ЗЕН массового применения. - II.: Наука. - 1987. - с. 4.5-5-1.

2. Барызшков Е Е , Борисов Е А. , Толстохлебов С. Е 1'з:аэ?орыэ воамогаюстн обработка таблиц в ЕГЕН-пакетах прикладных програ:лм// тез. докл. Бсес. конф. "Проблеш создания АРЫ и учрежденческих сетей в городском хозяйстве". - Е -1088. - с. 60-82.

3. Толстохлебов С. Е Еозмогности вычислений в ИГЕН-пакетах пркгкадных прогрс^У/ тез. докл. 1-ой Есесогхшой ыко-лы-сз$2шара "Разработка и внедрение в народное хозяйство персональных ЭЕГ. - Часть 3. - Кшск. - 1988, с. 152-153.

4. Иаьня Е Д., ¡куров Е Е , Барышников Е Е , Мартьянов А. Е , Борисов Е А., Толстохлебов С. Е , £агов Л. А. Програ^л-ir.ii сродства генерации интегрированных пакетов пршкадаых прогрев с заданна,! набором фуикгрй // Г&Ш, 1083 г.

5. Барышников В. а , Борисов В, А., Ильин Е д., Куров Е. Е , Логов А. А. , Глртьяков А. Е , Толстохлебов С. Е ГЕ11-ШД- система пороэдэнга пиктов программ // Препринт КПП АН СССР.- 19ЕЭ. - ео с.

6. ■ ТолстохлаЗоа С. Е Распираемый языл обработки таб-лпу/ тоо. докл. Еаес. совзг, "Программное обеспечение йогой иис:ор!щ:;о11кой технологии". - Калинин, Центрпрограглгзис-1СМ. - 1289, с. 45-46.