Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Работа с текстом на компьютере

Поиск

О языках программирования

Когда мы по-русски говорим "компьютер", то представляем себе некоторое устройство, которое нужно запрограммировать, чтобы оно заработало. Американцы, которые, естественно, ду­мают на своем английском, представляют себе компьютер сразу состоящим из двух частей – "твердой" ("хардуэр") и "мягкой" ("софтуэр"), что на русский язык казенно переводится как ап­паратные и программные средства вычислительной машины. Это различие в понимании отражает и некоторую реальную ситуацию: у нас первая составляющая компьютера стоит во много раз дороже второй. У них наоборот. Умственный труд они ценят много дороже промышленного, что обычно для развитых стран.

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

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

Сравнение компьютера с автомобилем, а программирования – с управлением механистично и мало что объясняет, компьютера с телевизором, а программы – с передачей, которую он принимает, тоже отражает лишь внешнюю сторону дела. Пожа­луй, ближе всего к существу отношений компьютера с его прог­раммой сравнение их с музыкальным инструментом и нотами. Дей­ствительно, комбинацией нескольких нотных знаков можно записать любое музыкальное произведение, а пределов для творчест­ва композиторов и исполнителей не существует. Так и програм­ма, написанная на одном из специальных языков, в котором ис­пользуется ограниченный набор символов, служит для решения многих творческих задач, от простых вычислений до игры в шах­маты. Но и здесь сходство сводится к идеальности и многооб­разию содержания информации и материальности и ограниченно­сти средств ее фиксации и воспроизведения.

Любая, самая сложная программа формальна и определяется алгоритмом решения задачи. Вместе с тем, возможность или границы формализации человеческого мышления, которое стремятся моделировать при помощи компьютера, пока еще не поддаются определению. В преодолении этого противоречия, в нахождении пу­тей его разрешения скрыт важный фактор дальнейшего развития данной проблемной области. По всей вероятности, задача такого уровня должна решаться не одними программистами и информати­ками, но всем научным сообществом. Это один из серьезных сти­мулов достижения всеобщей компьютерной грамотности. А. Кэй, из статьи которого взяты некоторые сведения о языках программиро­вания, писал об этом в следующих выражениях:

"Грамотность применительно к компьютерам – это проникнове­ние в суть процессов программирования, причем достаточно глубокое, чтобы было легко и приятно производить вычисления и ре­шать различные задачи на ЭВМ, подобно тому, как истинно грамот­ный человек может свободно читать и писать. Как и в любом ис­кусстве, здесь необходимо хорошо знать и любить материал. Ес­ли мы полагаем важным овладеть литературой и искусством для развития человека и общества, то имеем ли мы право меньше уси­лий тратить на то, чтобы сделать вычислительные средства и методы частью нашей жизни"[50].

История современных языков программирования насчитывает всего лишь пять десятилетий, если считать от момента создания языка Планкалкюль немецким инженером К. Цузе в 1946 г. С тех пор появились сотни языков программирования, а с вариан­тами, возможно, тысячи. Конечно, не все они употребляются на практике, и если бы их развитие шло другим путем, их могло бы быть и меньше. Но их многообразие оправдано, так как нель­зя создать язык, пригодный для всех случаев. Язык должен быть пригоден для решения данной задачи на данном компьютере и удо­бен для программиста.

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

Это повело к созданию языков ассемблера, в кото­рых двоичные последовательности были заменены символами и сло­вами. Первым таким языком был ассемблер компьютера "Эдсак", созданный в 1949 г. английским математиком М. Уилксом. Разуме­ется, ассемблеры проще и мнемоничнее машинных кодов, в них можно создавать инструкции для определенных действий. Однако каждая команда должна определяться отдельно и за ее прохожде­нием в машине нужно следить, Кроме того, ассемблер жестко связан с типом компьютера, для которого он создан.

Ограниченность ассемблеров была преодолена в языках более высокого уровня. Первым распространенным языком высокого уро­вня явился Фортран, разработанный в 1954–1957 гг. Дж. Бекусом в фирме IBM и до сих пор применяемый для научных рас­четов. Поскольку его применение занимало много времени "тихо­ходных" в то время машин, для него был создан компилятор, пе­реводивший его программы в машинный код. Это положило начало особым видам программ – т р а н с л я т о р а м, которые для каждого типа компьютеров переводят программы, написанные на языке высокого уровня, в их машинный код.

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

Все исследования в области программирования с 1957 г. сти­мулировались стремлением усовершенствовать Фортран, который подвергался неоднократным переделкам. Стало появляться боль­шое число языков, что беспокоило программистов, которые создали Международный комитет для выработки единого языка прог­раммирования (КОДАСИЛ). Результатом работы комитета явились два языка, до сих пор широко распространенные у пользовате­лей, эксплуатирующих большие машины. Один из них, К о б о л был разработан для выполнении однородных операций над боль­шими массивами чисел. Он применяется в сфере бизнеса и эффек­тивен при простых арифметических вычислениях. Две трети кон­торских программ на Западе все еще написаны на Коболе. Но как универсальный язык, к которому по тем временам все стре­мились, он был неудовлетворителен. Вторым языком стала пер­вая версия А л г о л а (1956 г.), который хотя и не стал же­ланным универсальным языком, но в последующих версиях сохра­няет значение многоцелевого средства.

Тогда же Дж. Маккарти из Массачусетского технологического института создал язык Л и с п, в котором программы и данные представляются в виде списков. Его простота и сила определяются тем, что в нем применяется только один вид команд – вызов функции, а ее значением может быть другая функция. С тех пор он стал популярным в исследованиях по искусственному интеллекту и послужил моделью для многих других языков. Для персональных компьютеров чаще всего используется Б е й с и к, разработанный в 1965 г. Дж. Кемени и Т. Курцем из Дартмутского колледжа в США. Он предназначался для изучения вводного курса программирования, но затем стал популярным среди программист­ов-непрофессионалов. Каждая строка программы на этом языке обозначается номером, а управление прохождением программы в основном осуществляется путем указания этих номеров.

Близок к нему и язык П а с к а л ь, также первоначально созданный для обучения студентов в 1970 г. Н. Виртом, препода­вателем Федерального технологического института в Цюрихе. В отличие от Бейсика в нем необходимо объявлять каждую перемен­ную и указывать ее тип, а процедуры и функции обозначать не номерами строк, а именами функций, что облегчает чтение прог­раммы. Решая какую-либо задачу, специалист не может опериро­вать двоичными кодами, регистрами и адресами машинной памяти. Он мыслит формулами своей науки, например,

"Площадь = длина X ширина",

"Прибыль = доход – затраты".

Действия, описываемые этими формулами, транслируются в машинные коды компиляторами и интерпретаторами, которые можно считать средствами реализа­ции языка программирования. На этом и были основаны такие язы­ки программирования, как Фортран, Паскаль, Бейсик.

Эти и подобные им языки называются процедурными. Каждый та­кой язык как бы предоставляет программисту некую виртуальную (воображаемую) машину. Составляя программу, пользователь ви­дит решение своей задачи как процесс вычисления, осуществля­емый этой виртуальной машиной. Тем самым сразу описывается и задача, и метод ее решения. Появились непроцедурные стили программирования – функциональный, логический – и соответству­ющие языки. Основная идея логического программирования – от­деление описания задачи от процесса ее решения – была выраже­на в уравнении одного из его авторов Р. Ковальского:

"Алгоритм = логика + управление".

Наиболее распространенный язык логического программирова­ния П р о л о г был создан в 1972 г. А. Колмари из Марсельского университета. Программа на Прологе состоит из описаний, задающих объекты и отношения между ними. Например, формула

"Площадь = длина X ширина"

описывается отношением "Произведе­ние, длина, ширина, площадь". Описание это статическое и никаких вычислений оно не задает. Но компьютер производит их сам по запросу, и по любым в данном случае двум величинам может вы­числить третью, т. е. по площади и ширине – длину. Независимо от зарубежных работ в СССР в 70-е годы В. Б. Бор­ще­вым и М. В. Хомяковым (ВИНИТИ) также разрабатывалась версия логического программирования.

Многие современные компьютерные системы используют язык С и, созданный в 1972 г. Д. Риччи в лабораториях "Белл Телефон" корпорации АТТ в Мюррей-хилл (шт. Нью-Джерси). Первоначаль­но он разрабатывался для программировании новой операционной системы Ю н и к с. Операционная система предназначена для приема, хранения и выдачи информации, а также для взаимодей­ствия аппаратных средств компьютера с прикладными программа­ми. Си стал популярным как язык так называемого среднего уро­вня. В нем удобство, краткость и мобильность языков высокого уровня сочетаются с возможностью непосредственного доступа к машине, что традиционно обеспечивалось ассемблером, т. е. язы­ком низкого уровня.

Другая важная тенденция в развитии программирования связа­на с объектно-ориентированными языками. В них процессор маши­ны условно делится на "объекты", которые могут программирова­ться индивидуально, а затем соединяться друг с другом при по­мощи сообщений. В числе подобных языков: С и м у л а - 67 (О. Даль и К. Нигард из Норвежского ВЦ в Осло), С м о л л т о к (1970 г., А. Кей из фирмы Ксерокс, Пало-Альта), Э у р и с к о (1979 г., Д. Ленат из Стэнфордского университета).

 

Прикладные программы подготовки текстов

Среди профессиональных программистов бытует мнение, что пользователям-непрограммистам не следует увлекаться програм­мированием, а лучше применять уже готовые программы. Это от­части противоречит высказанной в прошлой лекции идее о необ­ходимости формализации специальных знаний и том преимуществе, которое получают специалисты различных областей знания после овладения навыками работы с персональным компьютером. Но есть в этом мнении и рациональное зерно. Оно заключено в том, что в настоящее время разработано множество эффективных программ для решения самых разнообразных задач, и неразумно начинать по-дилетантски составлять программу, не убедившись, что она существует. Еще справедливее это в отношении обучения осно­вам информатики, когда, начиная со школы, учат только алго­ритмическому мышлению и одному из простейших языков, обычно Бейсику, и не дают представления о богатстве существующих прикладных программ.

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

Для нас наиболее важными являются те пакеты, которые применяются для подготовки текстов. Они получили название тексто­вых редакторов, но часто называются также текстовыми процессорами, системами обработки (подготовки) тек­стов. Текстовому редактору всего два с небольшим десятилетия. Его соз­дателем считается М. Шрейер, кинорежиссер из Нью-Йорка, который в 1975 г. реконструировал компьютер "Альтаир" и составил программу "Элек­трический карандаш", для подготовки руководств к своим программам. В 1978 г. нью-йоркские программисты С. Рубинштейн и Дж. Бар­нэби создали тек­стовый редактор "УордСтар", который определил стандарт таких программ для персональных компьютеров.

Ввод текста при помощи такой программы осуществляется как на пишущей машинке: буква за буквой с пробелами между слова­ми, а в конце строки (в современных программах – абзаца) нажимается клавиша возврата каретки (ВК, Ввод, Enter). Никакой каретки, конечно, в компьютере нет, а под воз­действием этой клавиши производится ввод набранной строки в память, а курсор (светящаяся или мигающая точка на экране) перемещается в начало следующей строки. Если набранный текст нужно исправить или отредактировать, курсор можно вернуть в любую его точку нажатием одной из редактирующих клавиш (управляющих команд): влево/вправо на одну букву, слово или в начало/конец строки, вверх/вниз на одну строку или же в начало/конец всего текста (см. рис 13).

 

 

Рис. 13. Процедуры исправления текста корректурными знаками и в текстовом редакторе компьютера
(пример из черновой рукописи А. С. Пушкина).

 


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

Вставка и замена это не только процедуры исправления, но и режимы работы текстового редактора, в одном из которых про­грамма работает обычно ("по умолчанию"), а другой вводится специальной клавишей. В режиме вставки часть строки, начина­ющаяся с курсора, при нажиме буквенной клавиши отодвигается вправо, освобождая эту позицию для вводимой буквы. В режиме замены вводимая буква забивает прежнюю. Так же работают в этих режимах и клавиши стирания букв – со смыканием текста в позиции стертой буквы или же с заменой ее пробелом.

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

По окончании редактирования текст может быть отформатиро­ван, т. е. выровнен по правому и левому краям, напечатан це­ликом или частями с отступом на любое число позиций. Для про­смотра текста на экране его можно сдвигать вверх или вниз по­строчно или постранично. Обычно на экране размещается до 25 строк (одна из них служебная) по 64 или 80 знаков в строке. Но имеются и такие редакторы, которые позволяют "верстать" широкую полосу в две колонки по 60 знаков с пробелом, сдви­гать текст на экране вправо/влево. Большинство программ осу­ществляют функцию поиска отдельных слов и словосочетаний по всему тексту с их заменой на другие слова и словосочетания.

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

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

Полиграммный метод основан на том, что все двух- и трех­буквенные сочетания проверяются на их допустимость в данном языке. Если в тексте встречаются слова с недопустимыми би- и триграммами, то они выводятся на экран как сомнительные. При словарном методе все набираемые слова сразу или после на­бора всего текста сопоставляются с находящимся в памяти маши­ны словарем, объем которого достаточно велик (обычно от 40 до 120 тыс. слов). Понятно, что такая программа должна учитывать всю парадигму словоизменения в данном языке, что гораздо про­ще сделать в английском, нежели в русском языке. Автоматиза­ция корректуры может состоять из обнаружения ошибок, предложений по их исправлению или же собственно их коррекции. По­нятно, что две последние возможности необходимы людям, неуве­ренным в своей грамотности, и требуют усложнения и значитель­ного увеличения программы.

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

Существуют сотни всевозможных программ с редакторами тек­стов, пакетов прикладных программ подготовки текстов с редак­торами, форматизаторами, автокорректорами. Многие из упомяну­тых языков программирования (Бейсик, Паскаль, Си) имеют ре­дакторы, пригодные для ввода не только программ на этих язы­ках, но и текстов на естественном языке. Программная среда, часто надстраиваемая над операционной системой и облегчающая использование ее средств (в персональных компьютерах ИБМ это обычно "Нортон коммандер"), тоже, как правило, имеет тексто­вый редактор. Пользователи ДОС‑совместимых машин предпочитали популярные полтора-два десятилетия назад пакеты, среди которых заслуживают упоминания: из американских – "Word5", "WordStar", "WordPerfect", "ChiWriter", а из оте­чественных – "Лексикон" (Москва, ВЦ РАН, 1985 г.).

Каждая из этих программ имели свои особенности и сферы применения. "Word" фирмы "Microsoft" располагал таким бо­гатством шрифтов и средств верстки, что при наличии лазер­ного принтера мог обеспечить настольную издательскую си­стему возможностями, превышающими полиграфические. "ChiWriter" был незаменим при наборе математических текстов, так как позволял легко писать формулы, под- и надстрочные индексы.

Для русскоязычных текстов получил широкое распространение "Лексикон" (автор Е. Н. Веселов) – многооконный текстовый про­цессор с русским знакогенератором (которым можно было пользовать­ся на компьютерах и принтерах западного производства без их переделки). Его версия "Лексикон-Ортодок" (авторы Е. Н. Веселев и А. Б. Борков­ский) осуществлял перенос русских слов, располагал словарем русского языка на 100 тыс. слов (на базе изве­стного словаря академика А. А. Зализняка). Другой русский спеллчеккер "Орфо" при помощи словаря в 120 тыс. слов не только проверя­л правописание, но и выявлял ошибки согласований в предло­жениях, находил опечатки в знаках препинания, легко "обуча­лся" новым словам.

Все это теперь история. Головокружительный прогресс наблюдается не только в развитии вычислительной техники и ее периферии, но и в программном обеспечении. В России и во всей Европе практическим стандартом и системных и прикладных программ стала продукция фирмы “Microsoft”, которая обновляется ежегодно. Это приводит к тому, что в обращении одновременно находятся сразу многие версии программ. Для системных программ – это Windows95, 98, Me, 2000, XP. Из прикладных программ большинство пользователей остановилось на Office97, хотя Office2000 и XP предоставляют значительно большие возможности, оставаясь совместимыми с программой 1997 г.

Статьи, монографии, деловые документы редко состоят из од­ного только текста. В них содержатся расчеты, таблицы, графики, диаграммы, указатели. Для выполнения всех этих элементов деловых бумаг недостаточно описанных возможностей текстового редактора, как бы ни были они велики. Поэтому к системе под­готовки текста примыкают еще три программы: "электронная та­блица", "диалоговая графика" и "база данных", которые вместе с текстовым редактором как бы образуют упряжку четырех "рабочих лоша­дей" для человека, использующего компьютер при подготовке разного рода документов и публикаций. В фирме “Microsoft” такой пакет и составляет Office.

Первая электронная таблица "Визикальк" была разработана Д. Бриклиным и Р.Фрэнкстоном в 1978 г. При составлении отче­та, например, или сметы часто приходится пересчитывать длин­ные колонки взаимозависимых чисел, что делает эту работу ве­сьма утомительной. Электронная таблица представляет собой прямоугольную матрицу, состоящую из ячеек, в каждой из кото­рых может быть помещено значение, зависящее от значений дру­гих ячеек (например, их сумма или разность). При изменении значения одной ячейки, в остальных значения пересчитываются автоматически в зависимости от ранее заданных формул. Таким образом, любая бухгалтерская, кадровая ведо­мость или инженерная таблица может всегда находиться в готовом виде, незави­симо от частоты введения в нее данных.

Таблицы всегда мало иллюстративны. Чтобы проследить дина­мику тех или иных изменений, можно изобразить их наглядно в виде графика или гистограммы, а статическое распределение лучше всего видно на диаграмме. Диалоговая графика позволяет перевести данные электронной таблицы в одну из этих изобра­зительных форм, причем они автоматически изменяются при из­менении данных таблицы. Первый такой промышленный пакет про­грамм был разработан для персональных компьютеров ИБМ М. Кэпором в 1982 г. под названием "Лотус 1-2-3". Эти программы позволяют также выполнять на компьютере любые рисунки: блок-схемы, чертежи, произвольные иллюстрации с заштриховкой или без нее, рамки, виньетки и другие украшения.

Наконец, еще одной широко распространенной программой, за­вершающей этот ряд, является "база данных". Она принадлежит к числу так называемых систем управления базами данных (СУБД) и позволяет создавать в машине структурированное хранилище большой емкости для информации. которую можно разыскивать по разным элементам. Создатели этого программного средства аме­риканцы У. Рэт­лифф, Дж. Тейт и Х. Лашли назвали его "диБейсII, хотя никакой "пер­вой" версии не существовало. Это был просто "ход" в рекламной кампании, развернутой в 1981 г. и увенчав­шейся миллионным успехом. Фирма "Тейт" рас­пространяет новые версии "диБейс", а программы данного типа повсеместно используются в персональных компьютерах для создания разного рода справочных и фактографических систем.

Рассказ об этой "большой четверке" самых употребительных прикладных программ нельзя закончить, не упомянув о том, что теперь они, как правило, объединяются в одну интегрированную систему. На Западе известны среди таких систем "ФреймУорк", "Нолидж­Ин", "ЛотусДжаз", "Парадокс", у нас подобную интег­рированную систему "Мастер" создал Е. Н. Веселов в 1989 г. для компьютеров с дисковой операционной системой (ДОС). Она объединяла текстовый редактор "Лексикон" с тремя другими опи­санными компонентами и распространялась советско-американским предприятием "Диалог" при ВЦ АН СССР. Она имела версию, работавшую под Windows, но не могла конкурировать с пакетом “Microsoft”. В настоящий момент наиболее распространенным интегрированным пакетом прикладных программ, как уже сказано, является «Офис» фирмы «Майкрософт». Русифицированные версии “Office”, включают текстовый редактор “Word ”, электронную таблицу “Excel ”, базу данных “Access” и редактор для презентации слайдов “PowerPoint”.

Быстрый прогресс программного обеспечения подготовки тек­стов объясняется рядом причин. Некоторые из них мы обсуждали в прошлой лекции. Делопроизводством, составлением, редактированием и изданием текстов в мире заняты сотни миллионов людей. В США 80‑х годов больше половины всего занятого населения бы­ло связано с обработкой текстов. Поэтому повышение производи­тельности труда в этой сфере, которую справедливо называют информационной, имеет большое значение. И любая мелочь, не предусмотренная стандартами, оборачивается огромными по­терями рабочего времени.

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

Эта неоднозначность была устранена с введением Американского стандарта кодирова­ния символов (ASCII), который стал международным. Но для русских букв коды в нем не были предусмотрены, а при их добавлении возникли варианты. Если учесть, что для других языков, поль­зующихся русским письмом (болгарского, сербскохорватского), были созданы новые варианты, то проблема кодирования кириллических букв никак не могла считаться решенной.

Если доба­вить к этому, что существовали два отечественных стандарта для расположения латинских букв на клавиатуре (старый и новый), по которым до недавнего времени изготавливались компьютеры разных типов, то актуальность стандартизации становится очевидной. В операционной системе “Windows” был использован новый американский стандарт (ANSII), в котором буквы русского письма получили постоянное место (под не вполне верным названием «кириллица»).

Но и на этом мытарства русского письма (как его надо правильно называть[51]) не закончились. При переходе от Office97 к Office2000 была изменена разрядность основных шрифтов (Times New Roman, Arial, Courier New, Thames), и русские буквы снова сменили свои кодовые номера, что создает затруднения при переходе от более поздних версий Office к более ранним.

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

На языке программи­стов такой "дружественный" интерфейс между машиной и пользо­вателем называется "ВИЗИВИГ" (аббревиатура английского выра­жения "Что вы видите, то вы получите" – What you see is what you get – WYSIWYG). Перефразируя это по-нашему, можно сказать, что электронные средства подготовки текстов позволяют "резать и клеить" тексты и рисовать на эк­ране, одновременно отражая это в оперативной памяти компью­тера.

 

"Понимание" текста на естественном языке

Многие процессы информационной деятельности: поиск инфор­мации, ее отбор, аналитико-синтетическая переработка, распро­стра­нение – все это процессы, связанные с чтением, понимани­ем (из­влечением смысла) и формулированием текста на естест­венном языке. Вот почему автоматизация этих процессов занима­ет важное место при разработке новых информационных техноло­гий. Впервые инфор­ма­ционные работники вплотную столкнулись с этой проблемой, когда в начале 50-х годов начались интенсив­ные эксперименты по машинному переводу. По этому поводу суще­ствуют разные мнения, о чем гово­рилось в лекции об информационных системах.

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

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

Нас, в данном случае, интересуют те типы текстов, которые занимают довольно большое пространство в центре шкалы и кото­рые по меткому выражению покойного академика А. П. Ершова называют "деловой прозой". Он считал, что деловая проза отражает производственные отно­шения людей и является таким фрагментом естественного языка, который может быть "воспринят" компьютером.

Это убеждение он основывал на том, что данные отношения людей более строго регламентированы, чем другие, что деловая проза используется в модельных ситуациях, которые ведут к ее формализации. "Сти­хийно реализуемая, – писал он, – но властно диктуемая сутью де­ла потребность обеспечить быстрое и точное взаимопонимание наградила деловую прозу жесткими средствами выражения, эко­номичностью и другими полезными для человека и машины свой­ствами". Ясно, что большая часть публицистики, научных и ад­министративных документов написана деловой прозой.

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

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

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

Выделяют пять типов такой неоднозначности: лексическую, структурную, "глубинную", семан



Поделиться:


Последнее изменение этой страницы: 2016-04-19; просмотров: 290; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.3.204 (0.013 с.)