Введение

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

История

Язык был впервые разработан под названием HTMLScript Джо Остином и другими в 1995 году, а в следующем году была создана компания HTMLScript Corporation. Истоки Miva Script начались в 1993 году, когда Дэвид Халди и Джозеф Остин создали первую версию HTMLScript. Первая версия была написана на языке программирования Perl, который назывался Logic Enhanced HTML (LEHTML). Джозеф Остин написал для него оболочку на языке программирования C, которая позволяла ему запускаться как корневой процесс, а затем немедленно понижать привилегии до прав владельца файла скрипта. Эта оболочка делала его подходящим для использования с его хостинговым сервисом, который в то время назывался Volant Turnpike. В конечном итоге Джозеф Остин продал Volant Turnpike Дэйву Халди. Perl допускал самоисполняющийся код, поэтому LEHTML не имел собственного анализатора выражений и просто преобразовывал выражение в синтаксис Perl, а затем передавал его интерпретатору Perl. Пользователям Volant Turnpike нравилось использовать LEHTML, поэтому Джозеф Остин и Рон Ахерн написали анализатор выражений и перереализовали синтаксис LEHTML на языке C. Джозеф Остин назвал результат HTMLScript и зарегистрировал это название в Управлении по патентам и товарным знакам США (USPTO). Джозеф Остин, Трой Маккасланд и Дерек Финли были основателями компании HTMLScript Corporation. В HTMLScript не было концепции циклов "WHILE" или "FOR" из-за ограниченной вычислительной мощности серверов того времени. Даже одна вышедшая из-под контроля программа могла привести к сбою всего сервера. Поэтому Джозеф Остин не реализовал циклы, чтобы исключить возможность бесконтрольного выполнения серверного процесса HTMLScript. Кроме того, он реализовал макросы в первой версии HTMLScript, чтобы разрешить самоисполняющийся код. Макросы были мощными, но в конечном итоге имели некоторые проблемы с безопасностью. В 1997 году Джон Берчмор существенно переписал язык, чтобы сделать его более синтаксически согласованным, хотя новый движок поддерживал как старый синтаксис HTMLScript, так и новый (под названием mivascript). Джон Берчмор переписал HTMLScript с синтаксисом, разработанным Джо при помощи SoftQuad, используя новый стандарт XML. Джон Берчмор написал замену KoolKat, которая впоследствии стала Miva Merchant. Новый конечный продукт поддерживал как старый синтаксис HTMLScript, так и новый (под названием Miva Script). 14 октября 1997 года название HTMLScript было изменено на Miva Script, а название компании – на Miva. Вскоре после этого продукт Miva Merchant также был переименован. Название Miva происходит от египетских иероглифов, обозначающих слово "кошка". Слово "кошка" состоит из двух символов: чаши с молоком и перепела. Чаша с молоком произносится как "mee", а перепел – как "waa", вместе образуя слово "кошка". Джозеф Остин посчитал это удачной идеей, поскольку они назвали KoolKat "электронным (каталогом)". Он показал это немецкому другу, который не мог произнести звук "waa" и постоянно произносил его как "va". Джозеф Остин зарегистрировал домен Miva.com и подал заявку на товарный знак. В 1998 году компания была переименована в Miva Corporation. В 1998 году вышла первая версия Miva Merchant. В 2002 году был выпущен компилятор Miva Script, и синтаксис и макросы HTMLScript были исключены из движка. В 2003 году Miva Corporation была продана компании FindWhat, публичной компании средней капитализации. Впоследствии FindWhat приобрела название Miva. В 2007 году Рассел Кэрролл и группа инвесторов выкупили оригинальные технологии Miva и клиентскую базу у Miva и основали Miva Merchant, Inc.

Языковые особенности

Miva Script часто описывается как "похожий на XML", хотя это несколько неточное определение. Он состоит из тегов, которые могут чередоваться с HTML и XHTML и все начинаются с <Mv. Существуют как парные, так и одиночные (пустые) теги. До версии 4.14 Miva Script интерпретировался движком Miva Script, Empresa. Версия 4.00 представила компилятор, что значительно повысило производительность. Одной из отличительных особенностей Miva Script является встроенная поддержка таблиц базы данных dBase (DBF III) с собственным форматом индекса и поддержкой SQL. Многие современные установки используют базу данных MySQL. Переменные не имеют типов и не объявляются заранее. Miva Script использует расширения файлов mv, mvc и mvt, которые являются стандартными расширениями для исходных файлов шаблонов, компилируемых во время выполнения.

Miva Merchant Empresa (Мива Торговая Компания)

Empresa – это базовый движок для Miva Script. В версиях с номером меньше 4.0, Miva Merchant Empresa является интерпретатором скриптов, доступным для веб-серверов, работающих под управлением операционных систем *nix и Microsoft Windows. Последняя версия интерпретатора – 3.9705. Интерпретируемый Miva Script по-прежнему широко поддерживается многими веб-хостингами. Версии с номером 3.9x представляют собой переходную форму языка, реализующую некоторые (но не все) новые функции, появившиеся в версии 4, такие как массивы. Начиная с версии 4.0, Miva Merchant Empresa является виртуальной машиной для запуска скомпилированного Miva Script, вновь доступной в версиях для *nix и Microsoft Windows. В текущей версии 5.x добавлены новые языковые конструкции, встроенная поддержка SQL, новый метод доступа к таблицам dbase3, называемый MIVA SQL, и новый синтаксис шаблонов, который виртуальная машина Empresa может компилировать "на лету". Версия 5.08 и более поздние версии поддерживают графическую библиотеку GD.

Мива Торговая Миа

Miva Merchant Mia — это версия движка Empresa, разработанная для запуска на ПК с Windows в качестве локального сервера, отслеживающего указанный порт, обычно 8000 или 8080. Никакое другое серверное программное обеспечение не требуется, за исключением случаев использования функций протокола POP и SMTP. Это обеспечивает переносимую, автономную среду разработки. Miva Merchant Mia обновляется с каждым выпуском Miva Merchant Empresa. Как и Empresa, версии ниже 4 являются интерпретаторами, а версии 4.0 и выше работают только с компилированными скриптами. Между ними есть некоторые незначительные различия.

Компилятор скриптов Miva Merchant - Miva Script

Компилятор скриптов Miva Merchant Script был представлен в середине 2002 года, заявляя о повышении производительности и защите исходного кода приложений. Для обеспечения компиляции потребовались некоторые изменения в языке, в частности, была прекращена поддержка устаревшего синтаксиса HTMLScript и вычисление макросов во время выполнения (что часто рассматривается как угроза безопасности). Компилятор генерирует платформенно-независимый байт-код, который выполняется на виртуальных машинах Miva Merchant Empresa и Miva Merchant Mia. Между виртуальными машинами Empresa и Mia существуют незначительные различия. В мае 2005 года корпорация MIVA сделала компилятор скриптов общедоступным (бесплатным). В 2011 году встроенный код лицензирования был удален, что упростило установку. В августе 2007 года Miva Merchant была выделена из состава материнской компании в результате сделки по выкупу менеджментом. В Miva Script 5.0 была представлена команда компилятора шаблонов страниц, которая лежит в основе системы шаблонов страниц Miva Merchant Storemorph&trade;. Этот компилятор внутри компилятора предлагает упрощенный поднабор полного языка, более подходящий для создания и редактирования веб-шаблонов пользователями. Страницы Storemorph&trade; позволяют добавлять в шаблон модульные компоненты, разработанные на MivaScript, расширяя его функциональность.