АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Исправления орфографических ошибок

Читайте также:
  1. Вопрос 5. Способы исправления ошибок в бухгалтерском учете
  2. Глава первая: Сомнение о прощении ошибок.
  3. Дифференциация и индивидуализация исполнения наказания и применения к осуждённым средств исправления.
  4. Исправление ошибок в документах и учётных регистрах
  5. Исправление ошибок в учетных регистрах и документах.
  6. Исправления перевода
  7. Источники ошибок в титриметрическом анализе
  8. Коды для обнаружения ошибок
  9. Контроль усвоения психологических знаний. Типология ошибок Д.Толлингеровой(есть в методичке стр-55,не стала перепечатовать прочитайте пожалуйста там). Функция контроля.
  10. Корректировки в связи с изменением учетной политики и исправлением ошибок
  11. Курящая машинистка делает больше ошибок, скорее устает, у нее рассеивается внимание.

 

Существует несколько случаев, когда компилятор может сомневаться в правильности написания идентификатора:

1. Часто во время синтаксического анализа бывает известно, что следующий символ должен быть словом из некоторого набора служебных (ключевых) слов языка. Если вместо него оказался идентификатор, следует проверить, не служебное ли это слово, искаженное орфографической ошибкой. Именно с этим случаем мы встречаемся в языках типа BASIC, где любой оператор начинается с ключевого слова. Другим примером может служить логическое выражение Фортрана и других языков, в котором должны встречаться операции типа AND, OR, NOT, GE, LE и т.п. Можно было бы также следить за ошибочной “конкатенацией”. Например, если ожидается BEGIN, а встретился BEGINA, то его надо заменить на BEGIN A.

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

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

 

Далее возникает вопрос, какой из идентификаторов был неправильно написан. В методе Д. Фримана, предложенном в 1963 году, использовалась сложная оценочная функция, вычисляющая “вероятность” того, что один идентификатор является искажением другого. В этой функции использовалась информация о количестве совпадающих букв и о количестве совпадающих букв после одной или двух их перестановок. Учитывались также часто встречающиеся ошибки в пробивке перфокарт (цифра 0 вместо буквы O или цифра 1 вместо буквы l или I).

Позднее этот метод был заменен более эффективным, но менее мощным методом, в основу которого положен тот факт, что около 80 процентов всех орфографических ошибок попадает в один из следующих четырех классов:

 

1) неверно написана или пробита одна буква;

2) пропущена одна буква;

3) вставлена одна лишняя буква;

4) две соседние литеры переставлены местами.

 

Суть этого метода состоит в следующем:

 

1. В таблице идентификаторов выделяется подмножество, среди которого и надо искать искаженный идентификатор. Для этого можно использовать контекст, в котором встретился ошибочный идентификатор, и принять во внимание длину идентификатора. Если в ошибочном идентификаторе n литер, то его нужно сравнивать только с идентификаторами, состоящими из n-1, n и n+1 символов. Если n £ 2, то нет смысла искать орфографическую ошибку.

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


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)