Lingo (язык программирования)

редактировать

Lingo - это подробный объектно-ориентированный (OO) язык сценариев, разработанный Джоном Х. Томпсоном для использования в Adobe Director (бывший директор Macromedia). Lingo используется для разработки настольных прикладного программного обеспечения, интерактивных киосков, CD-ROM и содержимого Adobe Shockwave.

Lingo - это основной язык программирования на платформе Adobe Shockwave, которая доминировала на рынке интерактивных мультимедийных продуктов в 1990-х годах. Различные графические приключенческие игры были разработаны с Lingo в течение 1990-х годов, включая The Journeyman Project, Total Distortion, Mia's Language Adventure, Mia's Science Adventure и сериал Didi Ditto. Сотни бесплатных онлайн-игр были разработаны с использованием Lingo и опубликованы на таких сайтах, как Miniclip и Shockwave.com.

Lingo можно использовать для создания пользовательских интерфейсов, для управления растровой графикой, векторной графикой и 3D компьютерной графикой и других задач обработки данных.. Lingo поддерживает специализированный синтаксис для обработки изображений и манипулирования трехмерными объектами. 3D-сетки также можно создавать «на лету» с помощью Lingo.

Содержание
  • 1 История
  • 2 Функции
    • 2.1 Подробный синтаксис
    • 2.2 Точечный синтаксис
    • 2.3 Создание сценариев
    • 2.4 Наследование
  • 3 Расширяемость
    • 3.1 XObjects
    • 3.2 Xtras
    • 3.3 Imaging Lingo
    • 3.4 3D
  • 4 Другие языки
  • 5 Ссылки
  • 6 Внешние ссылки
История

Lingo был изобретен Джоном Х. Томпсоном на MacroMind в 1989 году и впервые выпущен вместе с Director 2.2. Джефф Таннер разработал и протестировал Lingo для Director 2.2 и 3.0, создал пользовательские объекты XObjects для различных производителей мультимедийных устройств, примеры языковых расширений с использованием XFactory, включая интерфейс прикладного программирования XFactory (API), и написал начальные руководства о том, как используйте Lingo. Дэйв Шилдс протестировал и задокументировал Object-based Lingo для Director 3.13 и 4.0. Он запускал сценарии сборки для создания еженедельных выпусков для тестирования, создал Macromedia KnowledgeBase, создал примеры написания Lingo XTRA подключаемых модулей на C ++ и собрал золотые мастер-диски Macromedia. Директор, отправленные в копировальный аппарат.

Lingo был быстро принят растущим мультимедийным сообществом в 1990-х годах и стал уже популярным продуктом Director. Первоначально около 90% пользователей использовали только 10% функций Lingo; в первую очередь переходят в кадравторами мультимедийных учебных пособий и презентаций. Однако 10% пользователей были разработчиками игр, которые проявляли более широкий интерес к остальным 90% его возможностей, включая собственные расширения функций, создавая свои собственные XFactories / XObjects. Проект "Подмастерье" - яркий тому пример.

Возможности

Lingo встроен в Adobe Director и может быть добавлен в виде скриптов на объекты или на шкалу времени. Lingo - это язык объектно-ориентированного программирования (ООП), который поддерживает подробный синтаксис, подобный Smalltalk, объектно-ориентированный синтаксис и наследование.

Подробный синтаксис

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

, если спрайт 5 виден, переходить к кадру

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

Lingo также изначально был очень надежным, предоставляя создание объектов с помощью понятия factory, что привело к расширяемости языка с помощью внешних фабрик (XFactories) или XObjects. Для Director 3.13 и более поздних версий расширяемость осуществлялась с помощью подключаемого модуля другого типа, называемого XTRA, на основе модели компонентных объектов Microsoft (COM).

Точечный синтаксис

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

Эквивалент в новом стиле сценария будет:

if sprite (5).visible then _movie.go (_movie.frame)

В этом формате используются элементы объектная модель Director, представленная в Director MX 2004. Синтаксис в предыдущих версиях был бы таким:

если sprite (5).visible, то переходите к кадру

Сценарии

Существует 4 типа Lingo скрипты в Director, каждый из которых предназначен для определенной цели. Каждый тип сценария может быть добавлен к определенным типам совместимых объектов.

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

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

Наследование

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

Расширяемость

XObjects

Lingo 3.0 также можно было расширять с помощью внешних фабрик (XFactories) или XObjects (позже замененных на Lingo Xtras ), которые обеспечивали программные расширения к директору. Например, управление внешними носителями, такими как проигрыватели компакт-дисков и видеолент, через последовательный порт Macintosh. XObject API был открыт для разработчиков и производителей мультимедийных устройств, что повысило популярность и универсальность Lingo. Macromind очень активно позиционировал XObject API как стандарт для внешних мультимедийных устройств для совместной работы через Lingo; и его интерес в качестве стандарта получил широкое участие со стороны известных и быстрорастущих компаний, выпускающих медиа-продукты, через специальную группу под названием Мультимедийная ассоциация.

Xtras

Начиная с версии Director 4.0, Lingo можно было расширять за счет нового улучшенного класса внешних плагинов под названием Xtras. Xtra были разработаны на C ++ с использованием Microsoft Component Object Model (COM). Стандартизация с помощью COM помогла разработчикам создать рынок для таких подключаемых модулей.

Imaging Lingo

Imaging Lingo была представлена ​​в Director 8.0 и позволила разработчикам писать высокопроизводительные команды обработки изображений с использованием простого синтаксиса. Есть некоторые сходства с функциями графических приложений (например, Photoshop ), которые упрощают создание динамических визуальных эффектов на основе кода. В ActionScript 3.0 также было добавлено управление изображениями с помощью класса BitmapData. Поскольку это включало более сложные команды, Director был также обновлен, чтобы разрешить преобразование между объектом BitmapData и его собственными объектами Image.

3D

Director 8.5 представил движок DirectX 3D, который можно было написать с помощью Lingo. Lingo был существенно обновлен для поддержки новых 3D-объектов и теперь включает полнофункциональный набор 3D-команд. Xtra был также создан для использования механизма Havok 3D Physics, а затем и движка AGEIA PhysX в Director 11.

Другие языки

Эти другие языки, возможно, не так хорошо известны, как язык Macromedia. Однако в Великобритании остается юридическая аномалия, заключающаяся в том, что торговая марка слова «Lingo» принадлежит компании Linn Smart Computing.

  • Язык под названием Lingo был выпущен для разработки программного обеспечения под Windows. Эта версия была разработана как компилируемый язык программирования высокого уровня.
  • Язык программирования на основе Smalltalk был разработан для процессора Rekursiv, разработанного Linn Smart Computing в Шотландия, UK. Этот язык был назван Lingo и имеет важное значение, поскольку его создатели успешно получили товарный знак в Великобритании.
  • LINGO также является языком программирования для решения линейных, нелинейных и целочисленных задач оптимизации, впервые разработанного в 1988 году компанией LINDO Systems Inc. Этот язык все еще находится в разработке.
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-27 10:36:50
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте