Языки программирования для компьютерных сетей
Появление и активное развитие компьютерных сетей стало причиной создания многочисленных версий популярных языков программирования, адаптированных для использования в сети. Отличительные особенности, присущие сетевым языкам: они являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно, а сами программы — в исходных текстах. Такие языки получили название скрипт-языков.
HTML (Hyper Text Markup Language) — универсальный язык разметки гипертекста, используемый для подготовки Web-документов для сети Internet. Язык представляет собой набор элементарных команд форматирования текста, добавления графических объектов (рисунков), задания шрифтов и цвета, организации ссылок и таблиц. В соответствии с командами HTML браузер отображает содержимое документа, команды языка не отображаются. В основе языка HTML лежит механизм гипертекстовых ссылок, обеспечивающий связь одного документа с другим. В HTML текст кодируется в ASCII и поэтому может быть создан и отредактирован в любом текстовом редакторе. Все Web-страницы написаны на HTML или используют его расширение.
Perl. В 80-х гг. Ларри Уолл разработал язык Perl, который предназначался для эффективной обработки больших текстовых файлов, создания текстовых отчетов и управления задачами. В его состав входят многочисленные функции работы со строками, массивами, всевозможные средства преобразования данных, управления процессами, работы с системной информацией и др.
VRML. В 1994 г. был создан язык VRML для организации виртуальных трехмерных интерфейсов в Интернете. Он ориентирован на описание разнообразных трехмерных образов, цвето-теневого освещения в текстовом виде и позволяет создавать различные сценарии миров, путешествовать по ним, «облетать» с разных сторон, вращаться в любых направлениях, масштабировать, управлять освещенностью и многое другое.
JavaScript (JS). Создан на основе языка Java для создания динамических Web-страниц.
Такие скрипт языки как Perl, PHP, Python являются серверными языками (т.е. программа, написанная на них выполняется на сервере), а HTML, VRML, JavaScript – клиентские, т.е. выполняются на компьютере пользователя.
Языки моделирования
При моделировании систем применяются формальные способы их описания – формальные нотации, с помощью которых можно представить объекты и взаимосвязи между ними в системе. Такие системы называют CASE-системами.
Системы программирования
Процесс создания программы включает:
· Составление исходного кода программы на языке программирования.
· Этап трансляции, необходимый для создания объектного кода программы.
· Построение загрузочного модуля, готового к исполнению.
Все перечисленные выше действия требуют наличия специальных программных средств.
Совокупность этих программных средств входит в состав систе мы программирования;
· Текстовый редактор (необходимый для создания и редактирования исходного кода программы на языке программирования).
Этапы подготовки и решения задач на компьютере
Компьютер предназначен для решения разнообразных задач: научно-технических, инженерных, разработки системного программного обеспечения, обучения, управления производственными процессами и т.д. В процессе подготовки и решения на компьютере научно-технических задач можно выделить следующие этапы:
1. Постановка задачи – формулируется цель решения задачи, подробно описывается ее содержание; проводится анализ условий, при которых решается поставленная задача, выявляется область определения входных параметров задачи.
2. Формальное построение модели задачи – предполагает построение модели с характеристиками, адекватными оригиналу, на основе какого-либо его физического или информационного принципа; анализируется характер и сущность величин, используемых в задаче.
3. Построение математической модели задачи – характеризуется математической формализацией задачи, при которой существующие взаимосвязи между величинами выражаются с помощью математических соотношений. Как правило, математическая модель строится с определенной точностью, допущениями и ограничениями.
4. Выбор и обоснование метода решения – модель решения задачи реализуется на основе конкретных приемов и методов решения. В большинстве случаев математическое описание задачи трудно перевести на машинный язык. Выбор и использование метода решения позволяет свести решение задачи к конкретному набору машинных команд. При обосновании метода решения рассматриваются вопросы влияния различных факторов и условий на конечный результат, в том числе на точность вычислений, время решения задачи на компьютере, требуемый объем памяти и др.
5. Построение алгоритма – на данном этапе составляется алгоритм решения задачи, в соответствии с выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, определяется последовательность выполнения этих блоков.
6. Составление программы – алгоритм решения переводится на конкретный язык программирования.
7. Отладка программы – процесс устранения синтаксических и логических ошибок в программе. В процессе трансляции программы с помощью синтаксического и семантического контроля вы являются недопустимые конструкции и символы (или сочетания символов) для данного языка программирования. Компьютер выдает сообщение об ошибках в форме, соответствующей этому языку. Затем проверяется логика работы программы в процессе ее выполнения с конкретными исходными данными. Для этого используются специальные методы. Например, в программе выбираются контрольные точки, для них подбираются тестирующие примеры и вручную находятся значения в этих точках, которые затем и сверяются со значениями, получаемыми компьютером на этапе отладки. Кроме того, используются отладчики, выполняющие специальные действия на этапе отладки, такие как удаление, замена или вставка отдельных операторов или целых фрагментов программы, вывод промежуточных результатов, изменение значений заданных переменных и др.
8. Решение задачи на компьютере и анализ результатов. Теперь программу можно использовать для решения поставленной задачи. Первоначально выполняется многократное решение задачи на компьютере для различных наборов исходных данных. Получаемые результаты анализируются специалистом, поставившим за дачу. Разработанная программа поставляется заказчику в виде готовой к исполнению машинной программы, к ней прилагается документация, включающая инструкцию по эксплуатации.
В задачах другого типа некоторые этапы могут отсутствовать. Например, проектирование программного обеспечения не требует построения математической модели.
Все приведенные этапы тесно связаны между собой. Например, анализ результатов может привести к необходимости внесения изменений в программу, алгоритм, метод решения или даже в постановку задачи.
Технологии программирования
Для написания программ можно использовать следующие способы программирования:
1. Нисходящее, линейное, «непосредственное» программирование или программирование сверху вниз. При программировании данным методом пишут программу без использования процедур и функций. Данный метод подходит для написания простых программ, в противном случае можно получить программу с запутанной последовательностью операторов, которую сложно будет модифицировать.
2. Структурное программирование. Глобальные задачи разбиваются на более мелкие (локальные) задачи, решаемые процедурами и функциями. Процедуры и функции – это специальным образом оформленная последовательность команд подпрограмм. Доступ к такой подпрограмме осуществляется из любого места основного блока программы, а также из любой процедуры и функции, описание которых следует ниже. Процедуры и функции, как и программа, имеют имена. После имени процедуры/функции указывается список используемых параметров, а для функции и тип возвращаемого результата. После заголовка, как правило, идет тело процедуры/функции. Основное отличие процедуры от функции, что имя процедуры используется только для ее вызова, а с именем функции связывается ее значение.
В случае если подпрограмма направлена на выполнение некоторого действия, ее следует оформлять как процедуру, если же ожидается некоторый результат работы подпрограммы как в приведенном примере, то ее следует оформлять как функцию.
3. Модульное программирование. Созданные программы помещаются в некоторый блок – модуль (UNIT), а затем его подключают к основной программе. Модуль – это программная единица, текст которой компилируется независимо (автономно). Модуль характеризуют:
· принцип IPO (Input – Process – Output) – один вход – один выход;
Каждый модуль состоит из спецификации (правила использования модуля) и тела (способ реализации процесса обработки). Данный вид программирования позволяет отдельно отлаживать программы-модули и создавать из них библиотеки.
4. Объектно-ориентированное программирование. Является самым современным способом программирования. В отличие от выше приведенных способов программирования, в основе которых лежит алгоритм (процедура обработки данных), объектно-ориентированное программирование – это методика разработки программ, в основе которой лежит понятие объекта, как некой структуры, описывающей объект реального мира, его поведение. Задача, решаемая с использованием методики объектно-ориентированного программирования, в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними. Программирование основывается на:
· модели построения системы как совокупности объектов абстрактного типа данных;
· модульной структуре программ;
Базовые понятия объектно-ориентированного программирования:
· объект – совокупность свойств (параметров) определенных сущностей и методов их обработки;
· свойство объекта – характеристика объекта, его параметр. Все объекты наделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов;
· метод обработки – программа действия над объектом или его свойствами;
· событие – изменение состояния объекта;
· класс объектов – совокупность объектов, характеризующих общность применяемых методов обработки или свойств;
· инкапсуляция – скрытие полей объекта с целью обеспечения доступа к ним посредством методов класса;
· наследование – определение объекта и дальнейшее использование всех его свойств для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта доступа к коду и данным всех порождающих объектов;
· полиморфизм – присваивание определенного действию одного имени, которое затем используется по всей иерархии объектов сверху донизу, причем каждый объект иерархии выполняет это действие характерным именно для него способом.