ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.04.2020

Просмотров: 2098

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

Среди программ трехмерного моделирования наибольшее распространение получила 3D Studio Max. Так как этот программный пакет обладает свойствами, необходимыми для создания мультимедийного учебного пособия, то при его дальнейшей его разработки будем использовать 3D Studio Max.

2.2 Классификация языков программирования

Сценарные языки, или языки скриптов (scripting languages), за последние годы сделали огромный шаг вперед. Еще лет десять назад им отводилась роль вспомогательных средств. Сей­час же скепсис по отношению к ним сменился интересом и признанием [7].

В 1952 г. в швейцарском Базеле была издана работа X. Рутисхаузера «Автоматическая разработка плана с по­мощью программно-управляемых вычислительных машин» (Automatische Rechenplanfertigung bei program-ges-teuerten Rechenmaschinen, Birkhauser Verlag), с которой и ведет отсчет история изучения языков программирова­ния. За прошедшие полвека появились тысячи языков, различных по своей природе и охватывающих разные мо­дели и парадигмы программирования, включая програм­мирование процедурное, функциональное, символьное, логическое, продукционное, реляционное, параллель­ное, объектно-ориентированное, модульное (компо­нентное) и многое другое.

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


Дихотомия Устерхаута — принцип классификации языков, предложенный Джоном Устерхаутом, автором языка Тсl. В соответствии с его подходом высоко­уровневые языки делятся на языки системного про­граммирования и на сценарные. Соответствующая классификация представлена на рисунке 2. Сценарные языки программирования не имеют средств для представления сложных структур данных и обычно интерпретируются. Сценарии, как правило, взаимодействуют либо с другой программой, либо с набором функций, пре­доставляемых интерпретатором.

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

Как отмечает Роберт Хюбнер, ведущий програм­мист компании LucasArts Entertainment, «внутренний сценарный язык позволяет создавать отдельную среду во­круг вашей сервисной машины. Это защищает виртуальную машину, выполняющую сложный и часто изменяющийся программный код, от «реальной» машины, уп­равляющей игровой сервисной машиной. Так как систе­ма сценариев гораздо более гибкая, нежели совокупность фиксированных эффектов, ваша сервисная машина смо­жет выполнять более интересные функции, которые пер­воначально и не планировались».

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

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

Рисунок 2 – Классификация языков программирования

По оценке CI Labs Meta Group (1994), от 70 до 90% функциональности нового приложения обеспе­чивается за счет готовых модулей, тогда как для на­стройки и привязки приложения требуется всего 10—30% дополнительного программирования. Аргумен­том в защиту такой позиции может служить вывод, сде­ланный Л. Прехельтом в ходе проведенного им ис­следования: «Проектирование и составление программ на языках разметки занимает не более по­ловины времени, необходимого для программирования на Си++, а длина исходного текста вдвое меньше». Это лишний раз подтверждает правило Барри Боэма, согласно которому количество строк исход­ного теста, создаваемого программистом в единицу вре­мени, не зависит от языка программирования.


Возможная ниша сценарных языков в рамках созда­ния программных систем по отношению к традицион­ным программным языкам указана в работе [8]. Любая программа строится на трех образующих – данных, логике и внеш­нем интерфейсе. Если для удобства взять за основу попу­лярную концепцию MVC (Model/View/Controller), то данные, логика и интерфейс отобразятся соответственно на модель, контроллер и вид. Предполагается, что модель обычно выступает в одном экземпляре, видов может быть много, а контроллер играет роль связующего слоя между первым и вторым. По аналогии с концепцией MVC все модули программной системы при таком подходе могут быть разбиты на три вида:

- машины (системный слой, модель);

- преобразователи (связующий слой, контроллер);

- сценарии (прикладной слой, вид).

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

Традиционные языки в значи­тельной степени доминируют в синтезирующем програм­мировании, тогда как сценарные — в конкретизирую­щем. Их соприкосновение происходит в сборочном про­граммировании, которое становится пограничной зоной двух разных языковых миров.

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

Аналогичная классификация для традиционных языков, включая указание поддерживаемых ими парадигм и наличие соответствующих международных стандартов, была представлена в работе [9].

Далее рассмотрим подробнее каждый класс языков

2.2.1 К о м а н д н о – с ц е н а р н ы е я з ы к и. Данный тип языков зародился еще в 1960-х гг., когда возникла острая потребность в языках, обеспечивающих управление программами, иначе гово­ря, языках управления заданиями. Он поддерживает всего два типа данных (строки и числа) и имеет крайне ограниченный набор ко­манд. В таблице 1 указаны типичные представители данного класса языков.

Таблица 1 – Командно-сценарные языки

Название

Год появления

Разработчик языка

Организация, где был создан язык

Pilot

1962

-

IBM

JLC (Job Control Language)

1964

-

IBM

RPG

1965

-

IBM

MUMPS

1969

Окто Барнетт

Massachusetts General Hospital

Sh

1971

Стив Бурн

AT&T Bell Labs

Awk

1977

Альфред Ахо

AT&T Bell Labs

Csh

1978

-

UC Berkeley

Rexx

1979

Майкл Коулишоу

IBM UK Laboratories

AppleScript

1993

-

Apple Computer

К командно-сценарному классу относятся много­численные интерпретаторы команд CLI (command language interpreter), так называемые языки пакетной об­работки (batch language) и языки для построения сис­темных командных оболочек (яркий пример — sh, csh и их вариации для UNIX). Эти языки не только могли непосредст­венно взаимодействовать с соответствующей операци­онной системой, но и снабжались средствами грамма­тического разбора программ и трансформации данных. В число известных язы­ков такого типа входят Awk, впервые появившийся в AT&T UNIX Version 7, а теперь ставший частью стан­дарта POSIX Command Language and Utilities.


Языки этого класса ориентировались также на обработку системных событий, генерирование текста и высокоуровневый доступ к базам данных. Здесь стоит отметить язык RPG (Report Program Generator). Он до сего времени успешно применяется для создания отче­тов из корпоративных БД.

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

Реализация REXX/imc версии 1.6 - REXX для Unix. Язык легко читаемый и легкий в использовании. Полезен как управляющий язык для Unix. REXX - официальный язык сценариев для VM/CMS, OS/2 и AmigaDOS.

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

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

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

Таблица 2 – Прикладные сценарные языки

Название

Год появления

Разработчик языка

Организация, где был создан язык

HyperTalk

1986

-

Apple Computer

Visual Basic

1990

-

Microsoft

JavaScript

1994

-

Netscape Communications, Microsoft

CorelScript

1995

-

Corel

LotusScript

1995

-

Lotus Development

VBScript

1995

-

Microsoft

Pnuts

2001

Тойоказу Томацу

Sun Microsystems

Среди прикладных сценарных языков резко выде­ляется Visual Basic, в том числе и такая его разновид­ность для офисного программирования, как VBA (Visual Basic for Applications). Visual Basic — это тот са­мый «пограничный» язык, который скорее относится к сценарным, чем к традиционным. Он во многом за­дал тон такому классу языков, как прикладные сце­нарные языки. Более того, работа с пользовательским интер­фейсом и встраивание программных компонентов (VBX, OCX, ActiveX) стали едва ли не визитной кар­точкой данного языка. Под его влиянием были созданы такие языки, как VBScript и Lotus Script, предназна­ченный для решения задач автоматизации офиса в рамках Lotus Notes.


Несколько особо в этом ряду стоит JavaScript, став­ший стандартом де-факто в Web-программировании при реализации клиентской части.

Создание языка Java — это один из самых значительных шагов вперед в области разработки сред программирования за последние 20 лет. Язык HTML (Hypertext Markup Language — язык разметки гипертекста) был необходим для статического размещения страниц в World Wide Web. Язык Java потребовался для качественного скачка в создании интерактивных продуктов для сети Internet.

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

Из новичков в данном классе языков отметим экс­периментальный язык Pnuts, основная идея которого — дать в рамках сценариев наиболее полный доступ к Java API. Его можно использовать для самых разных задач, но прежде всего для оперирования компонентным программным обеспечением.

2.2.3 У н и в е р с а л ь н ы е с ц е н а р н ы е я з ы к и. Представители класса универсальных сценарных языков наиболее широ­ко известны. Все они вышли из операционной системы UNIX. Наиболее известные представители данного класса языков приведены в таблице 3.

Язык Perl (Practical Extraction and Report Language), что и отра­жено в расшифровке его названия, выполнял функ­ции, сходные с тем, на что ориентирован RPG: управ­ление данными и генерирование отчетов.

Язык Python задумывался для обеспечения удобного доступа к системным средствам экспериментальной операционной системы Amoeba. Его автор Гвидо ван Россум к 1991 г. создал объектно-ориентиро­ванный язык сценарного характера.

Цель создания языка Tcl (Tool Command Language) была совсем иной — интенсивная обработка строк и тес­ная интеграция с пакетом Тk, обеспечивающим удобное построение пользовательского интерфейса для любых интерактивных приложений. Он позиционируется как язык расширения приложений (application extension lan­guage). Автор языка Тсl и инструмента­рия Tcl/Tk, создавал эти средства для решения конкрет­ной задачи (проектирование СБИС). В отличие от Perl и Python язык Тсl в значительной мере опирается на под­ключение расширений, написанных на языках Си и Си++.

Остальные универсальные сценарные языки, упомя­нутые в таблице 3, принадлежат ко второй волне, возникшей при появлении HTML и Web-серверов. Самым извест­ным из них является РНР (Personal Home Pages).

Таблица 3 – Универсальные сценарные языки

Название

Год появления

Разработчик языка

Организация, где был создан язык

Perl

1986

Ларри Уолл


Tcl

1990

Джон Устерхаут

UC Berkeley

Python

1991

Гвидо ван Россум

Stiching Mathematisch Centrum

Ruby

1993

Юкихиро Матсумото


Euphoria

1993

Р. Крейг

Rapid Deployment Software

Lua

1994

У. Целес

PUC-Rio

PHP

1995

Расмус Лердорф


Mawl

1995

Д. Лэдд

Lucent Bell Labs

Pike

1996

Фредерик Хьюбинетт

InformationsVavarna

Curl

2000

Стив Уард

MIT Lab for Computer Science