Авторитетность издания
Добавить в закладки
Следующий номер на сайте
Электронный глоссарий
Аннотация:
Abstract:
Автор: Бойко А.Б. () - | |
Ключевое слово: |
|
Ключевое слово: |
|
Количество просмотров: 16787 |
Версия для печати |
Вычислительная техника, пусть самая современная, пока не может заменить профессионального переводчика, но существенно облегчить его работу может даже такая микроЭВМ, как «Микроша». Компьютер, конечно, не будет самостоятельно переводить текст предложение за предложением, поскольку даже для дословного перевода пришлось бы ввести в его память все слова из какого-нибудь большого англо-русского или немецко-русского словаря. Представьте, что такую работу требуется сделать только ради того, чтобы разобраться в какой-либо статье из газеты или понять, о чем поется в песне. Впрочем, даже если бы вы и решились на это, все необходимые слова просто не поместились бы в небольшой памяти «Микроши». Выручает здесь одно обстоятельство. Возьмем специалиста, который в общем-то знаком с иностранным языком, изучив его в средней школе. Основную трудность для такого специалиста представляет множество терминов, встречающихся в специальной литературе на иностранном языке. Однако множество это не так уж и велико — словарь из 400—800 терминов перекрывает все потребности такого специалиста. Все дело в том, что такой словарь нельзя взять в библиотеке или купить в магазине — его просто не существует. С помощью «Микроши» каждый может создать свой собственный словарь (и не один), который поможет ему переводить специальную литературу с любого языка, в основе которого лежит латинский алфавит. Не нужно думать, что опять-таки придется сесть за клавиатуру, раскрыть словарь и выбрать какие-то, предположительно самые необходимые слова. Электронный словарь тем и отличается от обычного, что не требует никакой подготовительной работы, кроме включения телевизора, «Микроши» и ввода в память программы СЛОВАРЬ. Существует несколько вариантов такой программы. Остановимся на одном из них. Наверняка можно составить более эффективные программы, однако этот простой вариант позволит попутно пояснить некоторые интересные приемы программирования . Прежде чем заняться составлением программы, нужно представить, как в памяти «Микроши» хранится все, что заставляет компьютер превращаться то в словарь, то в партнера для игр. Если разделить оперативную память на части, то первую часть занимает текст интерпретатора языка БЕЙСИК. Интерпретатор — это программа на машинном языке, которая переводит команды программы, записанной на БЕЙСИКе, в машинные коды, понятные компьютеру. Поскольку вся память компьютера состоит из пронумерованных ячеек (нумерация ведется в шестнадцатеричной системе счисления), можно точно сказать, сколько ячеек занимает интерпретатор БЕЙСИКа (адреса с 0000 по 19СО): 4096+9x256+12x16=6592 ячейки. Вслед за БЕЙСИКОМ в памяти «Микроши» разместится текст программы СЛОВАРЬ. Отведем для этого ячейки с 19СО по 2300. В оставшейся свободной части памяти от 2300 до 7000 будем хранить непосредственно английские слова и их русские эквиваленты. Теперь, когда память распределена, можно приниматься за программу. Полное описание процесса ее составления не поместилось бы на страницах журнала, поэтому прокомментируем только блоки готовой программы один за другим.
Первый блок предназначен для связи в единое целое программы СЛОВАРЬ и текста словаря. В — это десятичный адрес ячейки, начиная с которой в памяти машины хранится словарь; С — адрес последней ячейки области памяти, которую может занять словарь; S — адрес последней ячейки, занятой словарем. Второй блок — это блок основного меню и ввода запроса. Меню — список возможных команд, своеобразная подсказка, упрощающая диалог с компьютером. Такое построение программы делает ее более дружественной по отношению к пользователю-переводчику. Ему не придется запоминать какие-то правила работы — все необходимые сведения всегда будут на экране. Первые три строки программы выводят на экран сообщения, заключенные в кавычки. Рядом со словом память появляется число свободных ячеек, отведенных для хранения словаря. Строка 60 выполняется до тех пор, пока не будет нажата какая-нибудь клавиша из тех, коды которых находятся в интервале 32/90, т. е. любая латинская буква или одна из перечисленных на экране команд. В этом случае строки 70^-90 анализируют, какая из клавиш была нажата. Строка 70 проверяет, не пора ли приступить к поиску английского слова, только что введенного с клавиатуры. В случае если была нажата клавиша «;», которой соответствует код 59, управление будет передано на следующий блок команд. Нажатие клавиши «&» с кодом 38 — сигнал «Микроше»: нужно переходить к блоку завершения работы с программой, который начинается с команды 380. Оператор 80 служит для коррекции введенного слова. Каждое нажатие клавиши пробела стирает последнюю букву во введенном слове. Если нажата не клавиша-команда, а одна из клавиш-букв, код буквы записывается в своеобразный буфер — условимся так называть небольшую область памяти (ячейки 30000-^30015). Пятнадцать ячеек отведено для временного хранения очередного слова. Если попытаться ввести больше пятнадцати букв подряд, компьютер посчитает, что произошла ошибка, и попросит повторить ввод с самого начала. Строка 110 выводит на экран очередную букву. Операторы 120/240 осуществляют поиск слова в словаре. Прежде всего переменная W принимает значение кода первой буквы английского слова, а на экране появляется слово ПОИСК, показывающее, что работает именно блок поиска. Во второй строке идет поиск звездочки. Записи в словаре разделены двумя специальными знаками: звездочка — признак начала английского слова, двоеточие — его русский эквивалент. Как только найдена очередная звездочка, компьютер проверяет, с какой буквы начинается найденное слово и та ли это буква, что в исходном слове. Если да, то команды 150-^160 проверяют совпадение исходного и найденного слов. Здесь возможны три варианта: если слова полностью совпадают, то управление переходит на команду 350. Когда слова оказываются разными, поиск продолжается со строки 200. Третий вариант — исходное слово закончилось, а в словаре есть слово, которое начинается так же, но длиннее исходного. В этом случае начинают выполняться строки 170-^190. Этот фрагмент необходим для того, чтобы можно было получить на экране слова, начинающиеся одинаково. Для этого достаточно задать две, три или несколько начальных букв. Очередной блок программы предназначен для ввода в память машины нового слова. Это команды 250/340.
Первые три строки — это второе (вспомогательное) меню. Здесь три различных команды. Одна из них нам уже знакома — это команда пробел, служащая для исправления ошибок. Команда, обозначенная _, позволяет вернуться в основной режим, а команда; — сообщит компьютеру, что ввод русского эквивалента завершен. Операторы 280 и 290 выводят на экран слово, значение которого отсутствует в словаре. Строки 300^340 анализируют коды, поступающие с клавиатуры, русский эквивалент буква за буквой появляется на экране. Операторы 350-н370 приостанавливают выполнение программы, чтобы можно было прочесть слово и его значение, найденное в электронном словаре. Последний блок программы — команды 380+440. Этот блок выполняется для того, чтобы завершить сеанс работы со словарем.
Строки 410/430 запишут в начало словаря адрес первой свободной ячейки памяти. На экране появится подсказка, какую команду нужно отдать, чтобы записать словарь на магнитную ленту. Пусть, например, на экране появилось сообщение 0 2320, 301А. Запомните или запишите эту команду, нажмите клавишу СТР. Так вы выйдете из БЕЙСИКа и окажетесь в МОНИТОРе. МОНИТОР — это программа в машинных кодах, которая хранится в постоянной памяти компьютера. Если теперь подключить кассетный магнитофон, включенный на запись, то можно будет отдать команду 0 2320, 301 А, сообщающую МОНИТОРу, что требуется переписать на ленту весь текст словаря. Кстати, аналогично осуществляется и ввод словаря, с той лишь разницей, что достаточно набрать одну букву I. Вводить словарь можно еще до того, как введена программа СЛОВАРЬ Осталось ввести программу СЛОВАРЬ, но для этого нужно выйти из МОНИ-ТОРа в БЕЙСИК, поэтому запускаем его командой G. На экране появилось знакомое сообщение МИКРОША * БЕЙСИК, значит, можно набрать команду MLOAD, чтобы загрузить программу СЛОВАРЬ. Одна и та же программа СЛОВАРЬ может работать с несколькими различными словарями, например, каждый из членов вашей семьи может иметь собственный тематический словарь, загружая в компьютер свой набор данных. Возвратимся к программе, точнее, к подпрограмме вывода слов на печать. Она расположена в строках 470+520. Подпрограмма выводит найденные слова. Когда их несколько, они печатаются на экране в столбец. Если столбец оказывается чересчур длинным, компьютер очищает экран и продолжает печатать вновь найденные слова. Последняя строка программы — строка 530. Она нужна для работы команд 380/440, точнее, для перевода десятичного номера первой свободной ячейки в шестнадцатеричную систему. Две команды, которые мы не рассмотрели, — это 450 и 460. Они используются довольно редко, их назначение — вовремя сообщить о том, что исчерпан объем памяти, выделенной для хранения словаря. Для работы с несколькими различными словарями (разных областей знаний или различных языков) каждый раз текст словаря как бы перенастраивает программу, которая в свою очередь меняет информацию, записанную в словаре. Важно помнить, что для самого первого запуска словаря по адресам 2320-^2324 нужно записать шестнадцатеричные коды чисел 0,9,0,0,0. И в заключение несколько советов. После того, как вы опробуете эту программу, объем свободной памяти, выделенной под словарь, может показаться вам слишком скромным. Попробуйте его увеличить. Для этого, например, достаточно изменить способ разметки пар слов в словаре. Если быстродействие окажется слишком мало, попытайтесь увеличить его, изменив порядок хранения слов в словаре, например, расставляя слова по алфавиту и т. д. В общем, здесь большой простор для творчества. А в том, что такой словарь очень удобен, я давно убедился на собственном опыте. |
Постоянный адрес статьи: http://swsys.ru/index.php?id=1373&like=1&page=article |
Версия для печати |
Статья опубликована в выпуске журнала № 2 за 1989 год. |
Возможно, Вас заинтересуют следующие статьи схожих тематик:
- Сопряжение пакетов программ общего назначения с задачами жесткого реального времени
- Обработка запросов сервером геоинформационной справочной системы
- Система программного обеспечения единого технико-программного комплекса для гибких автоматизированных производств механообработки
- Эвристические и точные методы программной конвейеризации циклов
- Оптимизация структуры базы данных информационной системы ПАТЕНТ
Назад, к списку статей