Серьезность проблем очевидна.

Обычно данная проблема решается ужесточением условий поиска. Распространено мнение: “Лучше потратить значительное время на формулировку запроса. Зато получить выборку нужных документов”.

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

Кто из сотрудников аналитических служб не сталкивался с ситуацией, когда начальство не может четко сформулировать задание. Ситуация как в сказке: пойди туда не знаю куда, принеси то не знаю что. На закономерную просьбу аналитика об уточнении запроса и выделения ключевых понятий следует ответ: “Это ты мне должен сказать, какие там ключевые понятия и фигуры, а мне надо знать, что сейчас происходит в данной отрасли или регионе, предприятии и т.п.”.

Хочешь, не хочешь, приходится начинать с самых общих запросов, постепенно сужая область поиска. Подход правильный, но уж больно трудоемкий – приходится просмотреть сотни материалов, а некоторые из них внимательно прочесть. Данная работа может растянуться на дни. А вопрос порой требует оперативного ответа. Одно из двух: либо страдает оперативность, либо достоверность.

Предлагается совершенно иной метод работы с неструктурированной текстовой информацией.

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

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

При наличии недельного опыта эксплуатации у пользователя активно включается в работу подсознание, появляются навыки интегрального, качественного восприятия информации. При этом текстовые фрагменты объемом в сотни строк анализируются в течение 2-3 секунд. Подобная скорость “сканирования информационного пространства” обуславливает появление совершенно нового взгляда на проблему информационного поиска, выборки и фильтрации текстовых сообщений.

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

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

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

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

3. Более подробно рассмотрим работу аналитика для отдела инвестиций.

Информационно-аналитическое обеспечение процедуры инвестиционного проектирования, в котором проводится анализ характеристик рынков рассматриваемой в проекте продукции (ответ на первую группу вопросов: почему данный товар, по данной цене и в данном объеме будет куплен у данного предприятия):

- анализ достоверности предлагаемой идеи, и оценка риска инвестиционного предложения; исследование параметров инвестиционного проектами проверка данных его маркетинговой части на соответствие реальным характеристикам отрасли и предприятия;

- оценка товарных потоков для заданного сегмента рынка;

- оценка социально-политической и общей экономической обстановки и перспектив ее развития;

- оценка состояния и перспектив развития законодательной и налоговой базы;

- исследование рынков продукции, сырья и материалов и прогнозирование их динамики;

- статистический анализ спроса и сбытовых возможностей основных участников рынка;

- синтез региональной рыночной стратегии.

Оценка способности предприятия реализовать инвестиционный проект (ответ на вторую группу вопросов: способны ли специалисты данного предприятия организовать реализацию данного проекта на данном предприятии, производить товар требуемого качества и организовать систему сбыта в требуемом объеме):

- оценка системы управления кадровым составом и анализ систем мотивации;

- анализ системы сбыта предприятия, существующей дилерской сети и сети и торговых представителей;

- разработка конкурентоспособной ценовой политики;

- выработка предложений по организации эффективных каналов сбыта продукции и систем поддержки продаж

- анализ производственного и воспринимаемого качества продукции;

- выявление и “расшивка” узких звеньев технологической цепи, анализ и модернизация системы правления качеством сырья, комплектующих изделий и производимой продукции.

Прединвестиционная подготовка предприятия (ответ на третью группу вопросов: какая реструктуризация организационной и технологической структуры производства необходима для успешной реализации проекта):

- оценка отношения к реализации проекта федеральных и региональных властей, влиятельных региональных и федеральных общественно-политических объединений;

- оценка необходимости проведения и состав мероприятий по подготовке общественного мнения к реализации инвестиционного проекта;

- обеспечение организационно-правового статуса предприятия для привлечения прямых инвестиционных ресурсов;

- концентрация больших пакетов акций предприятия для продажи;

- создание инфраструктуры сопровождения инвестиций и их страховки от “политических” рисков;

- работа с кредиторами, оптимизация структуры долговых обязательств и очистка предприятия от долгов бюджетного характера;

- оценка надежности партнеров предприятия и построение системы противодействия влиянию криминальных структур;

- построение системы гарантийных обязательств, предоставляемых инвестору, и гарантий возврата инвестиционных ресурсов;

- построение системы физической безопасности участников проекта и предприятий, на которых реализуются инвестиционные программы;

- построение эффективных систем управления, принятия решений и мотивации.

Управление реализацией инвестиционного проекта (ответ на четвертую группу вопросов: каково состояние проекта в любой момент времени и каковы меры по компенсации изменения внешних условий или нарушений проектной динамики реализации проекта).

- мониторинг текущей экономической и общественно-политической ситуации и прогнозирование ее развития;

- контроль и управление реализацией проекта на всех этапах для оперативного реагирования на внештатные ситуации в случае нарушений планового развития проекта;

- разработка предложений по адекватному реагированию на изменение внешней для инвестиционного проекта экономической и общественно-политической обстановки и своевременному внесению изменений в проект, вплоть до его полной реорганизации.

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

Один аналитик, эксплуатирующий систему, позволяющую формировать интегральные образы текстовых материалов, способен:

- в течение 5-10 минут оценить имеется ли искомая информация в базе данных, степень детализации отдельных аспектов проблемы, качество возможного ответа на поставленный вопрос;

- в течение 1-2 часов подготовить качественный обзор изучаемой проблемы, не будучи специалистом в исследуемой предметной области, справку о событии или явлении с учетом основных существующих точек зрения;

- в течение рабочего дня сформировать заготовку полновесного серьезного аналитического отчета с “сеткой” возможных выводов и рекомендаций, а также полноценное досье на политического, общественного деятеля, руководителя крупного предприятия.

Контрольные вопросы

1. Назовите известные Вам поисковые системы INTERNET?

2. Перечислите список основных критериев, которые учитывает поисковая система при сортировке документов (сайтов)?

6. Знакомство с языком программирования.

Этапы решения задач с помощью персональных компьютеров

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

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

1. ПОСТАНОВКА ЗАДАЧИ. Решение задачи начинается с ее постановки, которая раскрывает содержание задачи и определяет конечную цель. Задача формулируется на уровне профессиональных понятий и выбирается общий подход к ее решению. Исходные положения и описания задачи должны быть корректны и понятны, так как ошибка в постановке задачи, обнаруженная на последующих этапах, приведет к необходимости начать решение задачи с самого начала.

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

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

 

2. ПОСТРОЕНИЕ АЛГОРИТМА. Как правило, даже имея математическую модель задачи, не удается получить решение в явном виде, например, в виде формулы, связывающей исходные данные и результаты. В этом случае устанавливается необходимая логическая последовательность математических операций и других действий, с помощью которых будут получены результаты, то есть создается алгоритм решения задачи.

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

В нашем примере по созданию модели ВУЗа нам будет необходимо связать сформулированные на первом этапе зависимости между собой. В итоге мы должны будем получить подробную запись решения задачи, как правило, расписанную в виде отдельных процедур, соединенных между собой логическими связями. Предположим, что в наш алгоритм мы включили процедуру оценки влияния отмен и переносов занятий на качество подготовки студентов, которая должна влиять с какого-то определенного количества отмены занятий. Для этого в структуру алгоритма нам нужно будет включить блок, проверяющий выполнение следующего условия: «Количество переносов занятий больше N?” (N – задаваемое нами число). Если это условие не выполняется, осуществляется переход к очередной процедуре. Если это условие выполняется, сначала вносятся изменения в конечный критерий, а потом осуществляется переход к очередной процедуре. Таким образом, в итоге мы должны получить алгоритм решения нашей задачи в виде отдельных, но связанных между собой процедур, выполнение которых завершается расчетом критерия оценки качества подготовки студентов.

3. РАЗРАБОТКА ПРОГРАММЫ. Программа – это последовательность предложений, написанных на каком либо языке программирования, допускаю­щая однозначность толкования и реализующая конкретный алгоритм. Иными словами, программа представляет собой запись алгоритма для решения задачи на компьютере. Процесс разработки программы состоит в том, что алгоритм записывается на каком-либо алгоритмическом языке программиро­вания. Как правило, всю программу стараются разбить на подпрограммы, которые могут быть оформлены как самостоятельные процедуры. Конечным продуктом является текст программы, но программу компьютер еще не может исполнить, так как «не понимает» ее текст. Для запуска программы на компьютере ее нужно перевести на машинный язык, то есть на язык, понятный компьютеру.

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

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

4. ТРАНСЛЯЦИЯ ПРОГРАММЫ. Перевод программы на машинный язык осуществляется с помощью специальной программы, называемой транслятором. Для каждого языка высокого уровня существуют свои трансляторы. Исходными данными для транслятора является текст программы на соответствующем языке программирования, а результатом работы – текст программы на машинном языке.

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

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

 

5. ОТЛАДКА ПРОГРАММЫ. Любая программа до ее практического использования должна пройти этап отладки. Цель отладки состоит в том, чтобы выявить и устранить ошибки, допущенные на предыдущих этапах, и получить программу, к результатам работы которой можно относиться с доверием.

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

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

6. ЭКСПЛУАТАЦИЯ ПРОГРАММЫ. Для программы, прошедшей отладку, разрабатывается эксплуатационная документация, после чего она готова для практического использования на компьютере. Разработанная программа и ее сопроводительная документация передается заказчику, который начинает ее эксплуатацию. Очень часто процесс решения задачи или создания программы на этом не завершается. В процессе эксплуатации не редко у пользователей возникают предложения по усовершенствованию и улучшению работы программы, о которых они сообщают разработчику программы для внедрения.

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

Основные понятия теории алгоритмов

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

Термин «алгоритм» – транскрипция имени великого узбекского математика Мухаммеда аль-Хорезми, который в IX веке разработал правила выполнения четырех действий арифметики. Однако не следует считать алгоритм чисто математическим понятием. Например, при разговоре по телефону мы действуем по определенному алгоритму, и никому не приходит в голову побеседовать с абонентом, не набрав его номер.

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

- детерминированностью, означающей, что применение алгоритма к одним и тем же исходным данным должно приводить к одному и тому же результату;

- массовостью, позволяющей получать результат при различных исходных данных;

- результативностью, обеспечивающей получение результата через конечное число шагов.

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

Элементарной структурной единицей любого алгоритма является простая команда, обозначающая один элементарный шаг переработки или отображения информации, в процессе выполнения которого происходит изменение некоторых величин. Например, присвоить переменной X значение 528 (X=528) или вычислить Y=(A3+5)/C. Объектами действий в алгоритмах являются числа (45; 0,03189; -8.675), простые переменные (A; y; betta; d5s) и переменные с индексами (X23; p12).

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

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

Графическое представление хода решения задачи является самым наглядным способом записи алгоритма.

В качестве примера рассмотрим схему упрощенного алгоритма для решения квадратного уравнения.

 

Задание: составить алгоритм вычисления действительных корней уравнения ax2+ bx + c = 0.

Исходные данные: a > 0, b > 0, c > 0.

Схема алгоритма показана на рисунке 1.

Вначале по заданным значениям a, bис вычисляется дискриминантD. Потом значение D проверяется: если оно меньше нуля, выдается сообщение «решения нет»; если оно больше или равно нулю, вычисляется квадратный корень из дискриминанта, а затем значения двух корней уравнения x1и x2.

Запись алгоритма на алгоритмическом языке, ориентированном на человека (псевдокоды), выполняется с помощью служебных слов и команд, которые записываются в сокращенном виде. Запись начинается со служебного слова алгоритм (АЛГ), за которым записывается его краткое название и определяются типы используемых величин. Далее перечисляются аргументы (АРГ) и результаты (РЕЗ). Команды, определяющие действия, записываются между служебными словами начало (НАЧ) и конец (КОН). Команды управления ходом вычислений начинаются служебными словами: ЕСЛИ, ТО, ИНАЧЕ, ЦК (цикл), КЦ (конец цикла), ПОКА. Команды друг от друга отделяются точкой с запятой.

Алгоритм решения квадратного уравнения, записанный в псевдокодах, имеет следующий вид:

АЛГ Решение квадратного уравнения

АРГ a,b,c,D,d; РЕЗ x1,x2;

НАЧ;

Вычислить D=b2–4•a•c;

ЕСЛИ D>=0;

ТО Вычислить d =; Вычислить x1=(–b+d)/2•a; Вычислить x2=(–b-d)/2•a;

КОН;

ИНАЧЕ Вывести сообщение: РЕШЕНИЯ НЕТ;

КОН

 

Алгоритм любой задачи, решаемой на компьютере, можно описать, используя четыре типа управляющих структур:

1. Алгоритм линейной структуры (следование) – алгоритм, в котором все действия выполняются последовательно друг за другом в порядке, заданном схемой алгоритма.

2. Алгоритм разветвляющейся структуры (выбор) – алгоритм, в котором в зависимости от выполнения некоторого логического условия вычислительный процесс должен идти по одной или другой ветви, то есть вычисление будет осуществляться либо по одним, либо по другим формулам. Блок-схема алгоритма с полным выбором представлена на рис. 3.

Согласно этой блок-схеме в зависимости от результата проверки условия выполняются только действия ветви «да» (действия 1 и 2) или только ветви «нет» (действия 3 и 4). В алгоритме решения квадратного уравнения на рис.1 происходит разветвление после проверки условия D>=0. В общем случае число ветвей может быть больше двух.

3.Алгоритм циклической структуры (повторение) – алгоритм, содержащий многократно выполняемые участки вычислительного процесса, называемые циклами. Внутри одного цикла могут размещаться один или несколько других.

 

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

 

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

 

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

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

Под термином «язык программирования» подразумевается совокупность символов, соглашений и правил для описания данных и алгоритмов решения задач на компьютере. Другими словами язык программирования представляет собой специальный формализованный язык для составления программ. Развитие языков программирования осуществлялось параллельно с развитием вычислительной техники, и в настоящее время существует достаточно большое количество различных языков.

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

Языки программирования можно условно разделить на следующие классы:

1. МАШИННЫЕ ЯЗЫКИ. Машинный язык представляет собой свод правил кодирования в числовом виде определенных действий и операций (машинные коды). Каждое действие, выполняемое компьютером, представляется в виде команды, которая определяет некоторую элементарную часть процесса обработки информации. В команде в общем случае должны быть указаны вид действия, место хранения в компьютере исходной информации, над которой производится машинная операция, адрес результата. Например, если операция сложения имеет код 01, то команда сложения двух чисел из ячеек с номерами 2001 и 2267 с помещением результата в ячейку 2375 выглядит следующим образом:

01 2001 2267 2375

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

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

2. МАШИННО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ. Первым усовершенствованием процесса программирования явилось введение символических адресов, позволившее составление команд и распределение памяти выполнять раздельно. На базе этого были созданы машинно-ориентированные языки или ассемблеры, в основу которых закладывалась система команд какой-либо конкретной электронно-вычислительной машины или определенного класса ЭВМ, что являлось основным их недостатком. Каждая команда на языке ассемблера чаще всего представляет собой одну машинную команду, записанную символическим кодом, поэтому он очень близок с машинным языком. Язык ассемблера позволяет создавать наиболее эффективные программы, однако он очень трудоемок и требует высокой квалификации программиста.

3. АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ. Этот класс языков программирования возник одновременно с ЭВМ второго поколения. Алгоритмические языки целиком ориентированы на отражение структуры конкретного алгоритма и не зависят от архитектуры компьютера. К алгоритмическому языку предъявляются следующие требования:

- наглядность (использование общепринятой математической символики и других легко понимаемых средств);

- гибкость (возможность описания любого алгоритма без излишнего усложнения);

- однозначность (недопустимость различных толкований при записи любого алгоритма);

- единство (небольшое число изобразительных средств, возможность использования одних и тех же средств для отображения родственных понятий).

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

К алгоритмическим относятся такие широко применяемые языки программирования, как Паскаль, Фортран, Бейсик и другие.

4. ПРОЦЕДУРНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ. Процедурно-ориентированные языки представляют собой разновидность алгоритмических языков, у которых имеется возможность описания программы как совокупности процедур (подпрограмм).

5. ПРОБЛЕМНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ. Проблемно-ориентированные языки так же, как и предыдущие, представляют собой разновидность алгоритмических языков, которые предназначены для решения задач определенного класса. К ним относятся такие языки как Лисп, РПГ, Симула и другие.

6. ИНТЕГРИРОВАННЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ. Интегрирован­ная система программирования представляет собой систему автоматизации процесса программирования, образуемую языком программирования, транслятором, а также вспомогательными средствами для подготовки программ к выполнению.

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

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

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

Основные понятия языка программирования Паскаль