Устройство для преобразования кодов с одного языка на другой — SU 1522237 (original) (raw)
СОЮЗ СОВЕТ СНИХСОЦИАЛИСТИЧЕСНИ ХРЕСПУБЛИК(51)1 006 Г 15 В;:. ЯЯ 11 щть;" ИСАНИЕ ИЗОБРЕТЕНИЯ ема СССР /44,ы- ков 8 ССР 9/44,ство 15/ г етел ство15/38 Авторское свУ 1275471, кл,1985./44,к вычис(ть ис" . ГОСУДАРСТВЕННЬЙ НОМИТЕТПО ИЗОБРЕТЕНИЯМ И ОТНРЫТИПРИ ГКНТ СССР двторском СвидетельСте(56) Авторское свидетельВ 1283798, кл. С 06 Р 151985.Авторское свидетельУ 1270766, кл. С 06 Р1985. 54) УСТРОЙСТВО ДЛЯ ПРЕОБРАОДОВ С ОДНОГО ЯЗЫКА НА ДРУ57) Изобретение относитсяительной технике и может б пользовано в вычислительных сист хс языком высокого уровня, в системахуправления банками данных при создании быстродействующих операционныхсистем, Цель изобретения - повышениедостоверности выдаваемой информациис учетом синтаксиса - входного и входного языков без промежуточногодирования выходных слоев. Устройство содержит регистр 2 приема, регистр 12 условий преобразования, регистр 4 выдачип блоков 3 ассоциативной памяти, (и - кол,:чество типовслов входного языка), дешифратор 1разделителей, блок 17 синтаксического контроля, блоки элементов И 8-11,блоки 13 и 14 элементов задержек,блок элементов ИЛИ 16 промежуточныйрегистр 18, триггер 5, генератор 15тактовых импульсов, Введение в уст1522237 ройство блока синтаксического контроля, пдополнительных блоков ассоциативной памяти, регистра условийпреобразования, блоков элементов И,блоков элементов задержки, блоковэлементов ИЛИ, генератора тактовыхимпульсов позволяет осуществлять преобразование входного кода в выходной Изобретение относится к вычислительной технике и может быть использовано в вычислительных системах сязыком высокого уровня, в системахуправления банками данных при созда 1 нии быстродействующих операционных,систем,Цель изобретения - повьппениедостоверности выдаваемой информа ции с учетом синтаксиса входного ивыходного языка беэ промежуточногокодирования выходных слов.На фиг.1 представлена структурная схема устройства на фиг.2Ффункциональная схема блока синтаксического контроля.Устройство содержит (фиг,1) де, шифратор 1 разделителей, регистр 2приема, блоки 3-3ассоциативнойпамяти (и - количество частей речиво входном языке), регистр 4 выдачи,триггер 5, первый 6 и второй 7 элементы ИЛИ-НЕ, с первого по четвертый блоки 8-11 элементов И, регистр 12 условий преобрАзования, первый 13 и второй 14 блоки элементовзадержки, генератор 15 тактовых импульсов, блок 16 элементов ИЛИ,блок 17 синтаксического контроля,промежуточный регистр 18, вход 19запуска устройства, вход 20 установки условий преобразования, информационный вход 21 устройства, выход 22совместимости и контроля устройства,информационный выход 23 устройства,вход обнуления 24 и стробирующий. вход 25 блока синтаксического контроля,Блок синтаксического контроля содержит (фиг,2) группу триггеров 26++ 26 , совпадения, группу регистров 27 + 27, контроля, первый 28и второй 29 элементы задержки, элемент И 30, первую 31 и вторую 32группы элементов И, первую 33 и вторую 34 группы блоков элементов И,15 20 25 30 35 40 45 50 55 без промежуточного кодированиявходных и выходных предложений, атакже производить синтаксическийконтроль выходного предложения с выдачей информации об участке выходного предложения, содержащем ошибку,что обеспечивает достижение поставленной цели. 1 з.п.ф-лы, 2 ил. группу 35 двухразрядных двоичных счетчиков, первую 36 и вторую 37 группы элементов ИЛИ,блок 38 элементов И, элемент ИЛИ 39, блок 40 элементов ИЛИ, блок 41 ассоциативной памяти совместимости, группу блоков 42,-42, ассоциативной памяти контроля, счетчик 43, дешифратор 44, группу,элементов 45 задержки.Устройство работает следующим образом.В исходном состоянии триггер 5 запуска, регистр 2 приема, регистр 4 выдачи, регистр 12- условий преобразования и промежуточный регистр 18 устройства, а также группа триггеров 26, группа регистров 27, группа счетчиков 35 и счетчик 43 блока синтаксического контроля обнулены.Работа устройства иницируется подачей импульсов запуска на вход 19 устройства,.который переводит триггер 5 запуска в единичное состояние и тем самым разрешает формирование серии тактовых импульсов с выхода блока 15 для синхронизации работы устройства. Условия преобразования кодов (например, тип входного предложения) поступают, с входа 20 устройства на регистр 12 условий преобразования.Входное предложение, подлежащее преобразованию, поступает посимвольно на информационный вход 21 устройства, Прием очередного символа предложения разрешается очередным тактовым импульсом, подаваемым на вход блока 8 элементов И, Принятый символ поступает на дешифратор 1 разделителей и на блок 13 элементов задержки. Если символ не является, разделителем словили предложений, то единичный сигнал с выхода элемента ИЛИ-НЕ 6 разрешает запись символа через блок 9 элементов И на регистр 2 приемаПри поступлении на вход блока 9 последующего символа, не являющегося разделите"55 5 152223 лем, тем же тактовым импульсом производится сдвиг содержимого регистра приема в сторону старших разрядов и запись поступившего символа. Если очередной символ является разделителем слов, то на втором выходе дешифратора разделителей формируется единичный сигнал, запрещающий запись кода этого символа иа регистр приема. Этим же сигналом разрешается выдача слова, сформированного к этому моменту на регистре приема, а также условий преобразования с регистра 12 через блок 10 элементов И на все бло 15 ки 3,-3 и ассоциативной памяти, а также на промежуточный регистр 8. Число и блоков ассоциативной памяти определяется количеством типов слов входного языка. Способ разбиения 20 слов по типам определяется синтаксисом входного языка. Так, для разговорных языков разбиения проводятся по частям речи, для языков програм мирования - по функциональному казна чению лексических единиц языка (операнды, знаки операций, открывающие и закрывающие скобки и т,д.). В каждом блоке 3 ассоциативной памяти в качестве ключа поиска используется слово, 30 в старших разрядах которого содержится условие преобразования, в остальных - собственно слово, а в качестве ответной части - слова выходного языка. Таким образом, в зависимости от типа входного слова выходное слово будет считано из одного из блоков 3 ассоциативнойпамяти. На выходе обнаружения этого блока ассоциативной памяти появляется единичный сигнал,который поступает на блок 17 синтаксического контроля, а на информационный выход блока ассоциативной памяти поступает считанное выходное слово, которое через блок 16 элементов ИЛИ переписывается на регистр 4 выдачи.Если искомый ключ поиска не будет найден ни в одном иэ блоков 3 ассоциативной памяти.(это может быть в случае, если очередное входное слово является именем) идентификатором (одного из объектов программы или числовыми данными), то на выходе элемента ИЛИ-НЕ 7 останется единичный сигнал (так как сигналы обнаружения всех блоков 3 ассоциативной памяти будут равны нулю), который разрешит передачу непереведенного входного слова с 7 6промежуточного регистра черезблок 11 элементов И на регистр 4 выдачи.Единичный сигнал с второго выходадешифратора разделителей, свидетельствующий о появлении разделителяслов, поступает на вход обнуления регистра приема, подготавливая его темсамым к приему первого символа очередного входного словау и на второйвход блока синтаксического контроля.Синтаксический контроль выходногопредложения заключается в проверкесовместимости разнотипных слов, находящихся на соседних позициях, а такжев анализе взаимного расположения ввыходном предложении однотипных слов,Поскольку указанные действия выполняются в блоке синтаксического контроляпараллельно, описание работы блокаприводится отдельнЬ для каждого изэтих действий.Проверка совместимости раэнотипных слов,Если выходное слово считывалось изодного из блоков 3-К (К1,п) ассоциативной памяти, то единичный сигнал,возникший на выходе обнаружения блока З-К, поступая на единичный входтриггера 26-К блока синтаксическогоконтроля, устанавливает его в единичное состояние. Единичный сигнал свторого выхода дешифратора, поступив-ший на вход блока 25 блока синтаксического контроля, задержанный на время поиска считывания выходного словаз блока 3-К и на время переключениятриггера 26 элементами 28 и 29 задержки соответственно, обеспечиваетпередачу единичного сигнала с выходаэлемента И 31 -К на счетный вход счетчика 35-К.Содержимое всех счетчиков 35 образует некоторое слово, состоящее изпар разрядов (каждая пара соответствует одному счетчику), Наличие "1"в одном из разрядов пары с номером С(С1,п+1) означает, что считанноевыходное слово относится к С-му типу.Наличие ")" в одном из разрядов парыс номеров А (А1,и+1, АФС) одновременно с парой С,означает, что словоА-го типа стоит в выходном предложении рядом со словом С-го типа. Приэ-" пара п 10" соответствует слову,стоящему слева, а пара "01" - слову,стоящему справа. Таким образом, содержимое слова, образованного разряВдами счетчиков 35, служит для определения типов слов, стоящих на соседНих позициях в выходном положении.В том случае, если считанное выодное слово является первым в предожении, содержимое счетчика 35-Ктановится равным "01", а содержимоесех остальных счетчиков группы 35стается равным "00". Следовательно, 10левые сигналы с выходов старшихазрядов всех счетчиков 35 обуславиют наличие нулевого сигнала на выоде элемента ИЛИ 39, который препятствует передаче содержимого счетчи" ка группы 35 через блок 38 на вход блока 41 ассоциативной памяти, в котором содержатся коды запрещенных сочетаний разнотипных слов в выходном предложении. 20Если следующее выходное слово счи-. тывается из блоков 3-М (М 1,и;М 1 К) ассоциативной памяти, то единичный сигнал с выхода обнаружения этого блока, поступая на соответствующий 25 вход блока синтаксического контроля, устанавливает в единичное состояние триггер 26-М. Соответствуюший этому выходному слову сигнал со второго выхода дешифратора разделителей, поступая на второй вход блока синтакси. ческого контроля, аналогично описанному обеспечивает формирование единичногоо сигнала на счетном входе счетчика 35-М, который переводит счетчик всостояние "01", Кроме того, тот же , сигнал с дешифратора разделителей обеспечивает наличие единичного сигнала и на счетном входе счетчик 35-К. Этот сигнал переводит счетчик 35-Кв состояние "10 п. Единичный сигнал с выхода старшего разряда счетчика 35-К, поступая на соответствующий вход элемента ИЛИ 39, формирует на его выходе единичный сигнал, который разрешает 45 передачу содержимого счетчиков 35 через блок 38 на вход блока 41 ассоциативной памяти. Если слово, образованное содержимым счетчиков 35, совпадает с одним из кодов, хранящихся в блоке 41, то этот код считывается и поступает с выхода блока 41 ассоциативной памяти на первый вход блока 40 элементов ИЛИ и с его выхода - на выход устройства. Единичный сигнал с выхода элемента ИЛИ 39 поступает также на второй вход элемента И 32-К, обеспечивая формирование на его выходе единичного сигнала, который, поступая на входы обнуления триггера 26-К и счетчика 35-К, переводит их в нулевое состояние. На выходах остальных элементов И 32 остается сигнал нулевого уровня, в том числе на выходе элемента И 32-М, так как в старших разрядах соответствующих счетчиков 35 записан "0", поэтому обнуление триггера 26-М и счетчика 35-М ие происходит. При считывании следующего выходного слова из одного из блоков 3 ассоциативной памяти блок синтаксического контроля работает аналогично описанному.Если очередное выходное слово считывалось не из блоков 3 ассоциативной памятиа с промежуточного регистра (т,е. является не подлежащим переводу входным словом), то единичный сигнал с выхода элемента ИЛИ-НЕ 7 поступает на первый вход элемента И 30. При наличии единичного сигнала на выходе элемента 28 задержки на выходе элемента И 30 также формируется единичный сигнап, который,поступая на единичный вход триггера 26 + переводит его в единичное состояние. В остальном работа блока синтаксического контроля в этом случае аналогична описанной.В том случае, когда считываются подряд два однотипных выходных сло" ва, соответствующий счетчик 35 меняет последоватецьно свое состояние от "00" до "10", после чего происходит выдача содержимого всех счетчиков 35 на блок 41 ассоциативной памяти. Однако соответствующие коды в блоке 41 заведомо отсутствуют, поскольку приведенный случай является одним из вариантов взаимного расположения одноткпных слов, которые анализируютсй в другой части блока синтаксического контроля. В дальнейшем работа блока аналогична описанной.Анализ взаимного расположения однотипных слов,Единичный сигнал с второго входа 25 блока синтаксического контроля, поступая на счетный вход счетчика 43, увеличивает его содержимое на единицу. Число, записанное на счетчике 43, равно порядковому номеру в выходном положении последнего считанного слова. Это число поступает на вход дешифратора 44, на соответствуюшем выходе которого формируется единичный сигнал, который поступает навторые входы всех блоков 33 элементов И, Если последним считывалось выходное слово К-го типа, то единичный сигнал с К-го входа группы входов блока синтаксического контроля поступает на первый вход блока ЗЗ-К, что приводит к формированию на его выходе кода, в котором значение разряда с номером, совпадающим с порядковым номе ром выходного слова, равно единице, которая записывается в разряде с тем же номером регистра 27-К контроля. Кроме того, код с выхода блока 33-К поступает на вход элемента 37-К. По 15 скольку один из разрядов кода равен единице, на выходе элемента 37-К формируется единичный сигнал.Единичный сигнал с выхода элемента 37-К, задержанный элементом 45-К задержки на время, необходимое для записи кода на регистр 27-К, поступает на первый вход элемента И 34-К. Этим обеспечивается передача содержимого регистра 27-К на вход блока 42-К ассоциативной памяти, в котором хранятся коды запрещенных комбинаций однотипных слов в выходном предложении. Если поступивший код совпадает с одним нз кодов, хранящихся, в блоке 42-К, то этот код поступает с выхода блока 42-К через блок 40 элементов ИЛИ на выход 22,. устройства, При считывании следующего выходного слова аналогичным образом записывается "1" в разряд с номером, на единицу большим в том регистре контроля, номер которого соответствует типу считанного слова. Сформированный на этом регистре контроля код поступает описанным способом на вход соответствующего блока 42 ассоциативной памяти для отождествлений с одной из запрещенных комбинаций. Таким образом, каждый из регистров контроля накапливает и хранит в позиционном коде информацию о расположении в выходном предложении слов определенного типа, и эта информация анализируется с помощью блоков 42 ассоциативной памяти на соответствие синтаксису выходного языка.При поступлении на информационный вход 21 устройства разделителя предложений на первом выходе дешифратора разделителей формируется единичный сигнал, который запрещает запись кода разделителя предложений на регистр приема. Кроме того, этот сигнал поступает на нулевой вход триггера 5 ивходы обнуления регистра условий преобразования, регистра выдачи и промежуточного регистра, а также на первыйвход 24 блока синтаксического контроля, С входа 24 единичный сигнал поступает на вход обнуления счетчика 43,на входы обнуления всех. регистров 27контроля, а также через элементы ИЛИ 36на входы обнуления счетчиков 35, Темсамым производится обнуление триггера запуска и всех перечисленных регистров и счетчиков устройства. Наэтом работа устройства по преобразованию входного предложения заканчивается.Проведем сравнительный анализ предлагаемого устройства с базовым объектом по критерию доли обнаруживаемыхошибок в выходном предложении, В качестве базового объекта используетсяпрототип, так как с точки зрения выбранного критерия он обладает наилучшими показателями по сравнению с другими известными устройствами для преобразования кодов с одного языка надругой,Поскольку при работе базовогообъекта используются не только собственно входные и выходные слова, нотакже их коды и коды входных и выходных предложений, в процессе функционирования базового объекта могут возникать ошибки следующих видов,Искажение входного слова (слов)или его кода, не приводящее к изменению кода входного предложения: ошибка базовым объектом не обнаруживается,так как код входного предложения неотражает семантику входящих в негослов. Предлагаемое устройство ошибки этого вида также не обнаруживает,так как они не влияют на синтаксисвыходного предложения, однако его использование снижает их количество.Это обусловлено отсутствием в устройстве промежуточных кодов, которыеподвержены искажению наравне с собственно входными словами,Искажение входного слова (слов)или его кода, приводящее к формированию измененного, но допустимого кода входного предложения: ошибка базовым объектом не обнаруживается,та ;ак выходное предложение, соответствующее измененному коду, считывается нормальным образом. При использовании предлагаемого устройстваошибки этого вида исключены, так как отсутствует этап формирования кодавходного предложения из кодов входных словИскажение входного слова (слов)или его кода приводящее к формироваЭнию недопустимого кода входного предложенияя; ошибка обнаруживается базовым объектом, так как в этом случае считывания выходного предложения не происходит; информация об ошибке не выдается. При использовании предлагаемого устройства ошибки этого вида исключены по причине, указанной в и. 2.Искажение выходного слова (слов) нли его кодане приводящее к нарушению синтаксиса выходного предложения". ошибка объектом не обнаруживается, так как не производится семан О тический анализ выдаваемой потребителю информации. При использовании предлагаемого устройства обнаружение ошибок не происходит по этой же причине, однако их количество 25 сокращается, поскольку в предлагаемом устройстве не используется промежуточное кодирование выходных слов,Искажение выходного слова (слов) или его кода, приводящее к нарушению ЗО синтаксиса выходного предложения: ошибка базовым объектом не обнаружи"вается, так как не производится синтаксический контроль выдаваемой пот 35 ребителю информации. Предлагаемое уст. ройство обнаруживает ошибки этого вида за счет применения синтаксического контроля выходного предложения. При этом на выход устройства выдаетсяучасток выходного предложения, содержащий ошибку, а на информационный выход - все выходное предложение.При использовании предлагаемого устройства исключается возникновение возможных ошибок второго и третьего видов, а также сокращается количество ошибок первого и четвертого видов.Формула изобретения501, Устройство для преобразования кодов с одного языка на другой, содержащее регистр приема, дешифратор разделителей, первый и второй блоки ассоциативной памяти, первый элемент55 ИЛИ-НЕ, регистр выдачи и триггер, вход сброса которого соединен с первым выходом дешифратора разделителей и с первым входом первого элемента ИЛИ-НЕ, второй вход которогосоединен с вторым выходом дешифратора разделителей и с входом обнуления регистра приема, о т л и ч а ю щ е ес я тем, что, с целью повышения достоверности выдаваемой информации засчет синтаксического анализа входного и выходного языков без промежуточного кодирования выходных слов, в него введены второй элемент ИЛИ-НЕ, спервого по четвертый блоки элементов И, регистр условий преобразования,первый и второй блоки элементов задержки, генератор тактовых импульсов,блок элементов ИЛИ, иблоков ассоциативной памяти, где и - количествотипов слов входного языка, блок синтаксического контроля и промежуточный регистр, причем информационныйвход промежуточного регистра соединен с информационными входами первогон второго блоков ассоциативной памятии выходом первого блока элементов И,первый вход которого соединен с информационным выходом регистра приема иинформационным выходом регистра условий, информационный вход которого соединен с входом установки условий устройства, а стробирующий вход - с первым выходом дешифратора разделителей,стробирующими входами промежуточногорегистра и регистра выдачи и с входом,обнуления блока синтаксического контроля, стробирующий вход которого соединен с вторым входом первого блокаэлементов И и входом сброса регистраприема, информационный вход которогосоединен с выходом второго блока элементов И, первый вход которого соединен с выходом первого блока элементов задержки, вход которого соединенс входом дешифратора разделителей ис выхоцом третьего блока элементов И,первый вход которого соединен с информационным входом устройства, а второй вход - с входом сдвига регистраприема и выходом генератора тактовыхимпульсов, вход которого соединен свыходом триггера, вход установки в"1" которого подключен к входу запуска устройства, и информационных выходов блоков ассоциативной памятисоединен с и входами блока элементов,ИЛИ, (и+1)-й вход которого соединенс выходом четвертого блока элементов И, первый вход которого соединенс выходом второго блока элементовзадержки, вход которого соединен свыходом промежуточного регистра, выходы обнаружения и блоков ассоциативной памяти соединены с входами второго элемента ИЛИ-НЕ и с и информаци 5 онными входами блока синтаксического контроля, (п+1)-й вход которого соединен с выходом второго элемента ИЛИ-НЕ и вторым входом четвертого блока элементов И, выход блока синтакси ческого контроля является выходом совместимости и контроля расположения слов устройства.2. Устройство по п,1, о т л и ч а ю щ е е с я тем, что, блок синтак 15 сического контроля содержит группу триггеров, группу .регистров контроля, первый и второй элементы задержки, элемент И, первую и вторую группы элементов И, первую и вторую группы блоков элементов И, группу двухразрядных двоичных счетчиков, первую и вторую группы элементов ИЛИ, блок элементов И, элемент ИЛИ, блок элементов ИЛИ, блок ассоциативной памяти 25 совместимости, группу блоков ассоциативной памяти контроля, счетчик, дешифратор, группу элементов задержки, причем вход первого элемента задержки соединен со стробирующим вхо.З 0 дом блока синтаксического контроля, а выход - с первым входом элемента И и с входом второго элемента задержки, выход которого подключен к вторым входам всех элементов И первой груп 35 пы, первые входы которых соединены с прямыми выходами соответствующих триггеров совпадения, единичные входы первых и триггеров группы (и - ко" личество типов слов входного языка) 40 подключены к и соответствующим информационным входам блока синтаксического контроля, а единичный вход(п+1)-го триггера группы подключен к выходу элемента И, второй вход которого .яв . 45 ляется (и+1)-м информационным входом блока синтаксического контроля, выходы всех элементов И первой группы подключены к счетным входам соответствующих двухразрядных счетчиков,50 входы обнуления которых подключены к входам обнуления соответствующих триггеров совпадения и к выходам соответствующих элементов ИЛИ первойгруппы, первые входы. которых соединены с выходами соответствующих элементов И второй группы, а вторые входыподключены к входу обнуления блокасинтаксического контроля, первые входы элементов И второй группы подключены к выходам старших разрядов соответствующих двухразрядных счетчиков,а вторые входы - к выходу элемента ИЛИ, выходы старших и младших разрядов всех двухразрядных счетчиковподключены к соответствующим входамблока элементов И, выходы старшихразрядов всех двухразрядных счетчиков подключены также к входам элемента ИЛИ, выход которого подключен квходу блоков элементов И, выход которого соединен с входом блока ассоциативной памяти совместимости, выход которого подключен к первому входу блока элементов ИЛИ, вторая группа входов которого подключена к выхоДам блоков ассоциативной памятиконтроля, а выход является выходомблока синтаксического контроля, входобнуления которого соединен с входамвобнуления регистров контроля и счетчика, счетный вход которого подключен к стробирующему входу блока синтаксического контроля, д выход соединен с входом дешифратора, выход которого подключен к вторым входамвсех блоков элементов И первой группы блоков, первые входы которых подключены к соответствующим информацио-"онным входам блока синтаксического .контроля, а выходы - к информационнымвходам соответствующих регистров контроля и к входам соответствующих элел-.ментов ИЛИ второй группы, выходы которых подключены к входам соответствующих элементов задержки группы,выходы которых соединены с первыми входами соответствующих блоков элементов Ивторой группы блоков, вторые входы которых подключены к выходам соответствующих регистров контроля, выходыблоков элементов И второй группы блоков подключены к входам соответствующих блоков ассоциативной памяти контроля,Кор рек то рТ, Мал е едактор М.Петров 5/47 Тираж бб 8 Подписноеударственного комитета по ретениям и открытиям при ГКНТ СССР113035, Москва, Жушская наб д. 4/5 оизводственно-издательский комбинат "Патент", г, Ужгород Гагарина, 101 Заказ 6ВНИИПИ Г Состав иТехред изоб Ра
Устройство для преобразования кодов с одного языка на другой