Знание языка
Выражение "знать язык"
имеет различную семантику:
Овладение языком
- предмет языкового образования (общего, для специальных целей,
специального...)
Успешное
овладение языком возможно без понимания того, как утроен и
функционирует язык
Понимание языка
(его структуры и работы, а не текстов - продуктов речевой
деятельности на конкретном языке) - предмет профессионального
лингвистического образования.
Успешная
межличностная коммуникация в социуме может основываться на
абсолютизации противоречивых (мифических,
сказочных...) представлениях о языке (его структуре и
функционировании).
Успешное
создание говорящих машин требует непротиворечивого научного
представления о языке, четкого понимания
его
недостижимости
и
неизбежной модельной ограниченности любого достигаемого уровня.
|
АОТ
в лингвистической науке
АОТ (и
методы АОТ) не призваны решать проблемы и задачи лингвистической науки
них свои
проблемы и задачи
Неприменимость....
Терминологическая
Прадигматическая...
Культурная...
основана
не на научной, а на инженерной парадигме.
Обработка текста
— придание тексту новых свойств.
Свойство объекта (предмета) — проявление
качества объекта (предмета).
Закон Лейбница (Principium
identitatis indiscernibilium): две вещи тождественны, если все их
свойства общие.
Следствие: придание тексту новых свойств
есть преобразование текста в
новый текст (в некотором отношении: графематическом, фонетическом,
лексическом, семантическом, синтаксическом, прагматическом...)
Продумать:
-
является ли обработкой текста
преобразование
не-текста
в текст?
-
является ли обработкой текста
преобразование его в
не-текст?
-
является ли обработкой текста
преобразование формы его представления?
-
являются ли обработкой текста его
восприятие,
анализ, интерпретация
(при которых сам текст остается неизменным)?
Свойство объекта
(предмета) — проявление качества объекта (предмета).
Качество объекта всегда проявляется для
кого-то (субъекта, объекта (взаимодействующего с ним).
Свойства объекта зависят от вида
взаимодействия объекта и субъекта.
Если на яблоко смотреть — оно имеет
цвет и форму; если его откусить — имеет твёрдость и вкус; если его
взвешивать — имеет вес; если оценивать его габариты — имеет размеры,
если трогать — имеет шероховатость.
Свойство
парадоксально
Обработка текста
—
парадоксальна |
Обработка текста —
придание тексту новых свойств
(как по отношению к другим текстам, там и по отношению к субъекту
(слушания, говорения, чтения, письма, перевода, анализа, интерпретации,
понимания)
Продумать:
-
Если на текст ... если его...
-
Если (не)знающий язык слушает
устный текст...
-
Если (не)грамотный смотрит в
книгу...
|
А ОТ
в языковом образовании
Текст (в АОТ) - машина в техносфере
Текст - машина...
Автоматизмы
|
Автомат
Автомат - устройство,
самостоятельно (без непосредственного участия человека)
реализующее по программе процессы получения, преобразования, передачи и
использования энергии, материала и информации.
Теория
автоматов —
раздел дискретной математики, изучающий абстрактные автоматы —
вычислительные машины, представленные в виде математических моделей — и
задачи, которые они могут решать.
Теория автоматов наиболее тесно связана с теорией алгоритмов: автомат
преобразует дискретную информацию по шагам в дискретные моменты времени
и формирует результат по шагам заданного алгоритма. |
АОТ: наука vs. инженерия
Текст (в АОТ) - машина в техносфере
Текст - машина...
|
Метод
МЕТОД
(от греч. methodos - путь исследования - теория, учение), способ
достижения какой-либо цели, решения конкретной задачи; совокупность
приемов или операций практического или теоретического освоения (познания)
действительности. В философии метод - способ построения и обоснования
системы философского знания.
Метод в объектно-ориентированном программировании — это функция или
процедура, принадлежащая какому-то классу или объекту.
Ме́тод (от др.-греч. μέθοδος — путь исследования или познания, от μετά-
+ ὁδός «путь») — систематизированная совокупность шагов, действий,
которые необходимо предпринять, чтобы решить определённую задачу или
достичь определённой цели. В отличие от области знаний или исследований,
является авторским, то есть созданным конкретной персоной или группой
персон, научной или практической школой. В силу своей ограниченности
рамками действия и результата, методы имеют тенденцию устаревать,
преобразовываясь в другие методы, развиваясь в соответствии со временем,
достижениями технической и научной мысли, потребностями общества.
Совокупность однородных методов принято называть подходом. Развитие
методов является естественным следствием развития научной мысли.
обработка
действие по значению гл. обрабатывать, воздействие на объект с целью
придать ему новые свойства
Обработка данных - процесс выполнения последовательности операций над
данными. Обработка данных может осуществляться в интерактивном и фоновом
режимах.
По-английски: Data processing
Синонимы английские: Performing data
|
Алгоритм
Само слово «алгоритм»
происходит от имени хорезмского учёного Абу Абдуллах Мухаммеда ибн Муса
аль-Хорезми (алгоритм — аль-Хорезми). Около 825 года он написал
сочинение, в котором впервые дал описание придуманной в Индии
позиционной десятичной системы счисления.
Алгоритм — это искусство счёта с помощью цифр, но поначалу слово «цифра»
относилось только к нулю.
Достоинства вычислений на счётной доске разъяснял в своих сочинениях
такой выдающийся мыслитель, как Герберт Аврилакский (938—1003), ставший
в 999 г. папой римским под именем Сильвестра II.
В 1684 году Готфрид Лейбниц в сочинении Nova Methodvs pro maximis et
minimis, itemque tangentibus… впервые использовал слово «алгоритм» (Algorithmo)
в ещё более широком смысле: как систематический способ решения проблем
дифференциального исчисления.
Первые попытки уточнения понятия алгоритма и его исследования
осуществляли в первой половине XX века Алан Тьюринг, Эмиль Пост, Жак
Эрбран, Курт Гедель, А. А. Марков, Алонзо Чёрч. Было разработано
несколько определений понятия алгоритма, но впоследствии было выяснено,
что все они определяют одно и то же понятие (см. Тезис Чёрча — Тьюринга)
На основе исследования этих машин был выдвинут тезис Тьюринга (основная
гипотеза алгоритмов):
« Некоторый алгоритм для нахождения значений функции, заданной в
некотором алфавите, существует тогда и только тогда, когда функция
исчисляется по Тьюрингу, то есть когда ее можно вычислить на машине
Тьюринга. »
Этот тезис является аксиомой, постулатом, и не может быть доказан
математическими методами, поскольку алгоритм не является точным
математическим понятием.
С каждым алгоритмом можно сопоставить функцию, которую он вычисляет.
Однако возникает вопрос, можно ли произвольной функции сопоставить
машину Тьюринга, а если нет, то для каких функций существует алгоритм?
Исследования этих вопросов привели к созданию в 1930-х годах теории
рекурсивных функций[5].
Класс вычислимых функций был записан в образ, напоминающий построение
некоторой аксиоматической теории на базе системы аксиом. Сначала были
выбраны простейшие функции, вычисление которых очевидно. Затем были
сформулированы правила (операторы) построения новых функций на основе
уже существующих. Необходимый класс функций состоит из всех функций,
которые можно получить из простейших применением операторов.
Подобно тезису Тьюринга в теории вычислимых функций была выдвинута
гипотеза, которая называется тезис Чёрча:
« Числовая функция тогда и только тогда алгоритмически исчисляется,
когда она частично рекурсивна. »
Доказательство того, что класс вычислимых функций совпадает с
исчисляемыми по Тьюрингу, происходит в два шага: сначала доказывают
вычисление простейших функций на машине Тьюринга, а затем — вычисление
функций, полученных в результате применения операторов.
Таким образом, неформально алгоритм можно определить как четкую систему
инструкций, определяющих дискретный детерминированный процесс, который
ведет от начальных данных (на входе) к искомому результату (на выходе),
если он существует, за конечное число шагов; если искомого результата не
существует, алгоритм или никогда не завершает работу, либо заходит в
тупик.
Маши́на Тью́ринга (МТ) — абстрактный исполнитель (абстрактная
вычислительная машина). Была предложена Аланом Тьюрингом в 1936 году для
формализации понятия алгоритма.
Машина Тьюринга является расширением конечного автомата и, согласно
тезису Чёрча — Тьюринга, способна имитировать всех других исполнителей (людей
или других живых существ) (с помощью задания правил перехода),
каким-либо образом реализующие процесс пошагового вычисления, в котором
каждый шаг вычисления достаточно элементарен.
Алгори́тм —
набор инструкций,
описывающих порядок действий исполнителя для достижения результатарешения
задачи за
конечное число действий. В старой трактовке вместо слова «порядок»
использовалось слово «последовательность», но по мере развития
параллельности в работе компьютеров слово «последовательность» стали
заменять более общим словом «порядок».
Понятие алгоритма относится к первоначальным, основным, базисным
понятиям математики. Вычислительные процессы алгоритмического характера
(арифметические действия над целыми числами, нахождение наибольшего
общего делителя двух чисел и т. д.) известны человечеству с глубокой
древности. Однако, в явном виде понятие алгоритма сформировалось лишь в
начале XX века.
Частичная формализация понятия алгоритма началась с попыток решения проблемы
разрешения (нем. Entscheidungsproblem),
которую сформулировал Давид
Гильберт в 1928 году.
Следующие этапы формализации были необходимы для определения эффективных
вычислений[1] или
«эффективного метода»[2];
среди таких формализаций — рекурсивные функции Геделя — Эрбрана — Клини1930, 1934 и 1935 гг., λ-исчисление Алонзо
Чёрча 1936 г.,
«Формулировка
1» Эмиля
Поста 1936 года и машина
Тьюринга.
Алгоритм — это точно определённая инструкция, последовательно применяя
которую к исходным данным, можно получить решение задачи. Для каждого
алгоритма есть некоторое множество объектов, допустимых в качестве
исходных данных. Например, в алгоритме деления вещественных чисел
делимое может быть любым, а делитель не может быть равен нулю.
Алгоритм служит, как правило, для решения не одной конкретной задачи, а
некоторого класса задач. Так, алгоритм сложения применим к любой паре
натуральных чисел. В этом выражается его свойство массовости, то есть
возможности применять многократно один и тот же алгоритм для любой
задачи одного класса.
Для разработки алгоритмов и программ используетсяалгоритмизация —
процесс систематического составления алгоритмов для решения поставленных
прикладных задач. Алгоритмизация считается обязательным этапом в
процессе разработки программ и решении задач на ЭВМ. Именно для
прикладных алгоритмов и программ принципиально важны детерминированность,
результативность и массовость, а также правильность результатов решения
поставленных задач.
Алгоритм — это понятное и точное предписание, исполнительно совершить
последовательность действий, направленных на достижение цели.
Различные определения алгоритма в явной или неявной форме содержат
следующий ряд общих требований:
-
Дискретность — алгоритм должен представлять процесс решения
задачи как последовательное выполнение некоторых простых шагов. При
этом для выполнения каждого шага алгоритма требуется конечный
отрезок времени, то есть преобразование исходных данных в результат
осуществляется во времени дискретно.
-
Детерминированность (определённость).
В каждый момент времени следующий шаг работы однозначно определяется
состоянием системы. Таким образом, алгоритм выдаёт один и тот же
результат (ответ) для одних и тех же исходных данных. В современной
трактовке у разных реализаций одного и того же алгоритма должен быть
изоморфный граф.
С другой стороны, существуют вероятностные алгоритмы, в которых
следующий шаг работы зависит от текущего состояния системы и
генерируемого случайного числа. Однако при включении метода
генерации случайных чисел в список «исходных данных», вероятностный
алгоритм становится подвидом обычного.
- Понятность — алгоритм должен
включать только те команды, которые доступны исполнителю и входят в
его систему команд.
- Завершаемость (конечность) — при
корректно заданных исходных данных алгоритм должен завершать работу
и выдавать результат за конечное число шагов.[источник не указан 1109 дней] С
другой стороны, вероятностный алгоритм может и никогда не выдать
результат, но вероятность этого равна 0.
- Массовость (универсальность).
Алгоритм должен быть применим к разным наборам исходных данных.
- Результативность — завершение
алгоритма определёнными результатами.
- Алгоритм содержит ошибки, если
приводит к получению неправильных результатов либо не даёт
результатов вовсе.
- Алгоритм не содержит ошибок, если
он даёт правильные результаты для любых допустимых исходных данных.
Особую роль выполняют прикладные алгоритмы, предназначенные для решения
определённых прикладных задач. Алгоритм считается правильным, если он
отвечает требованиям задачи (например, даёт физически правдоподобный
результат).
алгоритмы в зависимости от цели, начальных условий задачи, путей ее
решения, определения действий исполнителя подразделяются следующим
образом:
• Механические алгоритмы,
или иначе детерминированные, жесткие(например,
алгоритм работы машины, двигателя и т. п.) - задают определенные
действия, обозначая их в единственной и достоверной последовательности,
обеспечивая тем самым однозначный требуемый или искомый результат, если
выполняются те условия процесса, задачи, для которых разработан
алгоритм.
• Гибкие алгоритмы,
например стохастические, то есть вероятностные и эвристические.
• Вероятностный (стохастический)
алгоритм дает программу решения задачи несколькими путями или способами,
приводящими к вероятному достижению результата.
• Эвристический алгоритм (от
греческого слова «эврика») —
алгоритм, использующий различные разумные соображения без строгих
обоснований[11].
• Линейный алгоритм —
набор команд (указаний), выполняемых последовательно во времени друг за
другом.
• Разветвляющийся алгоритм —
алгоритм, содержащий хотя бы одно условие, в результате проверки
которого может осуществляться разделение на несколько параллельных
ветвей алгоритма.
• Циклический алгоритм —
алгоритм, предусматривающий многократное повторение одного и того же
действия (одних и тех же операций) над новыми исходными данными. К
циклическим алгоритмам сводится большинство методов вычислений, перебора
вариантов. Цикл программы — последовательность команд (серия, тело
цикла), которая может выполняться многократно (для новых исходных
данных) до удовлетворения некоторого условия.
Формализация понятия алгоритма позволила исследовать существование
задач, для которых не существует алгоритмов поиска решений. Впоследствии
была доказана невозможность алгоритмического вычисления решений ряда
задач, что делает невозможным их решение на любом вычислительном
устройстве.
Одной из первых задач, для которой была доказана нерешаемость, является проблема
остановки. Формулируется она следующим образом:
|
Имея описание
программы для машины Тьюринга, требуется определить, завершит ли
работу программа за конечное время или будет работать
бесконечно, получив некоторые входные данные.[14] |
|
Доказательство неразрешимости проблемы остановки важно тем, что к ней
можно свести другие задачи. Например, простую проблему остановки можно
свести к задаче остановки на пустой строке (когда нужно определить для
заданной машины Тьюринга, остановится ли она, будучи запущенной на
пустой строке), доказав тем самым неразрешимость последней.
Распространенным критерием оценки алгоритмов является время работы и
порядок роста продолжительности работы в зависимости от объема входных
данных.
Сложность
Комментарий Примеры
O(1) Устойчивое время работы не зависит от размера задачи Ожидаемое
время поиска в в хеш-таблице
O(log log n) Очень медленный рост необходимого времени Ожидаемое время
работы интерполирующего поиска n элементов
O(log n) Логарифмический рост — удвоение размера задачи увеличивает
время работы на постоянную величину Вычисление xn; Двоичный поиск в
массиве из n элементов
O(n) Линейный рост — удвоение размера задачи удвоит и необходимое время
Сложение/вычитание чисел из n цифр; Линейный поиск в массиве из n
элементов
O(n log n) Линеаритмичный рост — удвоение размера задачи увеличит
необходимое время чуть более чем вдвое Сортировка слиянием или кучей n
элементов; нижняя граница сортировки сопоставлением n элементов
O(n²) Квадратичный рост — удвоение размера задачи увеличивает
необходимое время в четыре раза Элементарные алгоритмы сортировки
O(n³) Кубичный рост — удвоение размера задачи увеличивает необходимое
время в восемь раз Обычное умножение матриц
O(cn) Экспоненциальный рост — увеличение размера задачи на 1 приводит к
c-кратному увеличению необходимого времени; удвоение размера задачи
увеличивает необходимое время в квадрат
|
Программирование
Компью́терная програ́мма —
последовательность инструкций,
предназначенных для исполнения устройством управлениявычислительной
машины.
Програ́ммное обеспе́чение[1][2](допустимо
также произношениеобеспече́ние[3][4][5])
(ПО) —
все или часть программ, процедур, правил и соответствующей документации
системы обработки информации
В узком смысле (так называемое кодирование)
под программированием понимается написание инструкций (программ) на
конкретном языке программирования (часто по уже имеющемуся алгоритму —
плану, методу решения поставленной задачи). Соответственно, люди,
которые этим занимаются, называютсяпрограммистами (на
профессиональном жаргоне — кодерами), а те, кто разрабатывают алгоритмы —
алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр
деятельности, связанный с созданием и поддержанием в рабочем состоянии
программ — программного обеспечения ЭВМ. Иначе это называется «программная
инженерия» («инженерия ПО»). Сюда входят анализ и постановка задачи,
проектирование программы, построение алгоритмов, разработка структур
данных, написание текстов программ, отладка и тестирование программы (испытания
программы), документирование, настройка (конфигурирование), доработка и
сопровождение.
Программирование для ЭВМ основывается на использовании языков
программирования, на которых записывается программа. Чтобы программа
могла быть понята и исполнена ЭВМ, требуется специальный инструмент — транслятор.
В настоящее время активно используются интегрированные
среды разработки, включающие в свой состав также редактор для ввода
и редактирования текстов программ, отладчики для поиска и устранения
ошибок, трансляторы с различных языков программирования, компоновщики
для сборки программы из нескольких модулей и другие служебные модули.
Текстовый редактор среды программирования может иметь специфичную
функциональность, такую как индексация имен, отображение документации,
средства визуального создания пользовательского интерфейса. С помощью
текстового редактора программист производит набор и редактирования
текста создаваемой программы, который называют исходным
кодом. Язык
программирования определяетсинтаксис и
изначальную семантику исходного
кода. Компиляторпреобразует
текст программы в машинный код, непосредственно исполняемый электронными
компонентами компьютера.
Интерпретатор создаёт виртуальную
машину для выполнения
программы, которая полностью или частично берёт на себя функции
исполнения программ.
Программирование в широком смысле можно разбить на несколько стадий:
Анализ (др.-греч. ἀνάλυσις —
разложение, расчленение) — операция мысленного или реального расчленения
целого (вещи, свойства, процесса или отношения между предметами) на
составные части, выполняемая в процессе познания или
предметно-практической деятельности человека.
Проектирование программного обеспечения — процесс создания
проекта программного обеспечения (ПО), а также дисциплина, изучающаяметоды
проектирования. Проектирование ПО является частным случаемПроектирования продуктов
и процессов.
Целью проектирования является определение внутренних свойств системы и
детализации её внешних (видимых) свойств на основе выданных заказчикомтребований
к ПО (исходные условия
задачи). Эти требования подвергаются анализу.
Первоначально программа рассматривается как чёрный ящик. Ход процесса
проектирования и его результаты зависят не только от состава требований,
но и выбранной модели процесса, опыта проектировщика.
Модель предметной области
накладывает ограничения на бизнес-логику иструктуры
данных.
В зависимости от класса создаваемого ПО, процесс проектирования может
обеспечиваться как «ручным» проектированием, так и различными средствами
его автоматизации. В процессе проектирования ПО для выражения его
характеристик используются различные нотации — блок-схемы, ER-диаграммы, UML-диаграммы, DFD-диаграммы,
а также макеты.
Проектированию обычно подлежат:
В российской практике проектирование ведется поэтапно в соответствии со
стадиями, регламентированными ГОСТ 2.103-68: Техническое задание,
Техническое предложение, Эскизный проект, Технический проект, Рабочий
проект.[1] На
каждом из этапов формируется свой комплект документов, называемый
проектом (проектной документацией).
В зарубежной практике регламентирующими документами, например, являются
Software Architecture Document, Software Design Document.
|
Иерархия АОТ
-
идея
(концепт)
-
модель
(результат осмысления идеи и выражения ее на языке ... математики)
-
алгоритм
(....
-
программа
(текст на языке программирования, в котором реализуется алгоритм,
работающий в некоторой программно-аппаратной среде)
-
сервис
(услуга, предоставляемая программой на основе пользовательского
интерфейса)
|
Методы и объекты
Методы должны
соответствовать объектам.
Методы
определяют объекты.
Анатомия и
литература - два метода познания человека...
Человек с т.з.
физики....
Различие наук
определяется не объектами, а методами, которые из единой реальности
выделяют (как трафаретом) свои предметы исследования.
Любой факт теортетиески
нагружен (классика, неклассика (+наблюдатель), постнеклассика (....
|
Основные методы АОТ
Основные методы:
-
моделирование
-
статистика
(даже явное отсутствие модели есть, на самом деле, такая модель
(неструктурированная, аморфная, хаотическая)
-
разметка
Все сводится к
одному (моделированию)
Статистика есть моделирование....
Даже явное отсутствие модели есть, на самом деле, такая модель
(неструктурированная, аморфная, хаотическая)
Разметка есть моделирование конструкта (текста)
путем внедрения модели в текст. А модель, есть удаленная разметка,
которая прикладывается к тексту... |
Мельчук
|