ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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 language). Автор языка Тс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