MIVA Script

Last updated
MIVA Script
Paradigm imperative
Developer Miva Merchant
First appeared1996 (1996)
Stable release
5.35
Typing discipline Dynamic, loose
OS Cross-platform
License Empresa
Filename extensions .mv, .mvc, .mvt
Website www.mivascript.com
Major implementations
MivaScript
Influenced by
C, Perl, Java, C++

Miva Script is a proprietary computer scripting language mainly used for internet applications such as e-commerce. As of 2015, it is developed, maintained and owned by Miva Merchant, Inc., based in San Diego, California. Many web hosting companies support Miva Script on their servers, but it is significantly less widespread than other popular web languages.

Contents

History

The language was first developed under the name HTMLScript by Joe Austin and others in 1995, and a company, HTMLScript Corporation, was formed the following year. [1]

The origins of Miva Script began in 1993 when David Haldy and Joseph Austin built the first version of HTMLScript. The first version was written in the programming language Perl, which was called Logic Enhanced HTML (LEHTML). Joseph Austin wrote a wrapper for it in the programming language C that let it start off as a root process and then downgrade itself immediately to the ownership and permissions of the owner of the script file. This wrapper made it suitable for use with his hosting service which was called Volant Turnpike at the time. Joseph Austin eventually sold Volant Turnpike to Dave Haldy. Perl allowed self-executing code, so LEHTML did not have its own expression analyzer and just parsed the expression into Perl syntax and then passed it into Perl. Volant Turnpike users liked using LEHTML, so Joseph Austin and Ron Ahern wrote an expression analyzer and re-implemented the LEHTML syntax in the C language. Joseph Austin called the end result HTMLScript and registered the name with the United States Patent and Trademark Office (USPTO). Joseph Austin, Troy McCasland and Derek Finley were the founders of the company called HTMLScript Corporation.

HTMLScript did not have the concept of a "WHILE" or "FOR" loop because of the low server processing power at the time. It would be enough to bring the whole server down if even one program ran away. So, Joseph Austin did not implement a loop to make it impossible for an HTMLScript server process to run away. Also, he implemented the macro in the first version of HTMLScript so it would allow self-executing code. The macro was powerful, but it eventually had some security issues.

In 1997, Jon Burchmore extensively rewrote the language to make it more syntactically consistent, although the new engine supported both old HTMLScript and new (named mivascript) syntaxes. Jon Burchmore rewrote HTMLScript with syntax that Joe developed with the help of SoftQuad, using the emerging XML standard. Jon Burchmore wrote the replacement for KoolKat which then became Miva Merchant. The new end-product supported both the old HTMLScript syntax and new (named Miva Script) syntaxes.

On October 14, 1997, HTMLScript’s name was changed to Miva Script and the company name was changed to Miva. Soon afterward, Miva Merchant followed suit for the name of the product. The name Miva comes from the Egyptian hieroglyphics for the word cat. The word for cat is a combination of two symbols: milk basin followed by a quail. The milk basin is pronounced mee and the quail is pronounced waa which are combined to say cat. Joseph Austin thought this was clever, as they had called KoolKat “an electronic (cat)alog.” Joseph showed it to a German friend who could not pronounce the waa sound and instead kept on pronouncing it as va. Joseph Austin registered the domain Miva.com and filed the trademark. [2]

In 1998, the firm was renamed Miva Corporation. In 1998, the first version of Miva Merchant came out. In 2002, the Miva Script compiler was delivered, and the HTMLScript syntax and macros were dropped from the engine. Miva Corporation was sold in 2003 to a mid-cap, public company called FindWhat. [3] Subsequently, FindWhat bought the name Miva. [4]

In 2007, Russell Carroll and a group of investors bought the original Miva technologies and customer base from Miva and started Miva Merchant, Inc. [5]

Language features

Miva Script is often described as 'XML-like' although this is something of a misnomer. [6] It consists of tags which may be interspersed with HTML and XHTML and which all start with <Mv. There are both paired and stand-alone (empty) tags. Before version 4.14, Miva Script was interpreted by the Miva Script engine, Empresa. Version 4.00 introduced a compiler, boosting performance significantly.

One of the distinguishing features of Miva Script is the native support for a variation of dBase database platform (DBF III) tables with a proprietary index format and support for SQL. Many installations today are running with MySQL database.

Variables are untyped and are not pre-declared. Miva Script uses the file extensions .mv, .mvc, and .mvt which is the common file extension for runtime compiled template source files.

Implementations

Miva Merchant Empresa

Empresa is the underlying engine for Miva Script. [7] In versions numbered less than 4.0, Miva Merchant Empresa is a script interpreter available for web servers running *nix and Microsoft Windows operating systems. The most recent interpreter version is 3.9705. Interpreted Miva Script is still widely supported by many web hosts. Versions numbered 3.9x are a transitional form of the language, implementing some (but not all) of the new features found in version 4, such as arrays.

Since 4.0, Miva Merchant Empresa is a Virtual Machine for running compiled Miva Script, again available in versions for *nix and Microsoft Windows.

The current version level 5.x added new language constructs, native SQL support, a new access-methodology for dbase3 tables, called MIVA-SQL, and a new templating syntax that the Empresa virtual machine can compile on the fly. Version 5.08 and later support the GD Graphics Library.

Miva Merchant Mia

Miva Merchant Mia is a version of the Empresa engine designed to run on a Windows PC as a localhost server watching a specified port, usually 8000 or 8080. [8] No other server software is needed unless the Post Office Protocol (POP) and SMTP functions are used. This provides a portable, stand-alone development environment.

Miva Merchant Mia is updated with each Miva Merchant Empresa release. Like Empressa, versions pre-4 are interpreters while post-4.0 work only with compiled script. There are a few minor differences between.

Miva Merchant Script Compiler -- Miva Script

Miva Merchant Script Compiler [9] was introduced in mid-2002, claiming to offer better performance and the closure of application source code. Compilability required some changes to the language, with support for the old HTMLScript syntax and macros evaluated at runtime (often considered a security risk) dropped. The compiler produces a platform-independent bytecode which runs on the Miva Merchant Empresa and Miva Merchant Mia Virtual Machines Minor variations exist between Empresa and Mia virtual machines.

In May 2005, MIVA Corporation made the Script Compiler available free. In 2011, the built in licensing code was removed simplifying installation.

In August 2007, Miva Merchant was separated from its parent company due to a management buy-out. [10]

Miva Script 5.0 Introduced the a page template compiler command which is the basis for Miva Merchant Storemorph&trade; page template system. This compiler within a compiler offers a simplified subset of the full language, more suitable for end user creation and editing of web page templates. Storemorph&trade; pages allow modular components created in MivaScript, to be added to a template extending its capabilities.

Notes

Related Research Articles

Active Server Pages (ASP) is Microsoft's first server-side scripting language and engine for dynamic web pages.

Microsoft Access Database manager that is part of the Microsoft Office package

Microsoft Access is a database management system (DBMS) from Microsoft that combines the relational Microsoft Jet Database Engine with a graphical user interface and software-development tools. It is a member of the Microsoft 365 suite of applications, included in the Professional and higher editions or sold separately.

Perl Interpreted programming language first released in 1987

Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was officially changed to Raku in October 2019.

PHP Scripting language created in 1994

PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP reference implementation is now produced by The PHP Group. PHP originally stood for Personal Home Page, but it now stands for the recursive initialism PHP: Hypertext Preprocessor.

In computer science, a preprocessor is a program that processes its input data to produce output that is used as input to another program. The output is said to be a preprocessed form of the input data, which is often used by some subsequent programs like compilers. The amount and kind of processing done depends on the nature of the preprocessor; some preprocessors are only capable of performing relatively simple textual substitutions and macro expansions, while others have the power of full-fledged programming languages.

Windows Script Host

The Microsoft Windows Script Host (WSH) is an automation technology for Microsoft Windows operating systems that provides scripting abilities comparable to batch files, but with a wider range of supported features. This tool was first provided on Windows 95 after Build 950a on the installation discs as an optional installation configurable and installable by means of the Control Panel, and then a standard component of Windows 98 and subsequent and Windows NT 4.0 Build 1381 and by means of Service Pack 4. The WSH is also a means of automation for Internet Explorer via the installed WSH engines from IE Version 3.0 onwards; at this time VBScript became means of automation for Microsoft Outlook 97. The WSH is also an optional install provided with a VBScript and JScript engine for Windows CE 3.0 and following and some third-party engines including Rexx and other forms of Basic are also available.

A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages, and domain-specific programming languages. Special-purpose computer languages have always existed in the computer age, but the term "domain-specific language" has become more popular due to the rise of domain-specific modeling. Simpler DSLs, particularly ones used by a single application, are sometimes informally called mini-languages.

WebGUI Open-source content management system

WebGUI is an open-source content management system written in Perl and released under the GNU General Public License.

Apache Velocity first released in April 2001, is a Java-based template engine that provides a template language to reference objects defined in Java code. It aims to ensure clean separation between the presentation tier and business tiers in a Web application.

LAMP (software bundle) Acronym for a common web hosting solution

LAMP is an acronym denoting one of the most common solution stacks for many of the web's most popular applications. However, LAMP now refers to a generic software stack model and its components are largely interchangeable.

Comment (computer programming)

In computer programming, a comment is a programmer-readable explanation or annotation in the source code of a computer program. They are added with the purpose of making the source code easier for humans to understand, and are generally ignored by compilers and interpreters. The syntax of comments in various programming languages varies considerably.

SPINE is a free, open source content management system for publishing content on the World Wide Web and intranets. The system includes features like easy Web-based administration, full template support to separate style from content, common components like navigation bars, macros, message boards, and page statistics, and the ability to mix static and dynamic content transparently. SPINE is licensed under the GPL, and is written in the Perl programming language and can use the MySQL or PostgreSQL database.

A scripting language or script language is a programming language for a runtime system that automates the execution of tasks that would otherwise be performed individually by a human operator. Scripting languages are usually interpreted at runtime rather than compiled.

In computer programming, string interpolation is the process of evaluating a string literal containing one or more placeholders, yielding a result in which the placeholders are replaced with their corresponding values. It is a form of simple template processing or, in formal terms, a form of quasi-quotation. String interpolation allows easier and more intuitive string formatting and content-specification compared with string concatenation.

In database management systems (DBMS), a prepared statement or parameterized statement is a feature used to pre-compile SQL code, separating it from data. Benefits of prepared statements are:

Mustache is a web template system with implementations available for ActionScript, C++, Clojure, CoffeeScript, ColdFusion, Common Lisp, Crystal, D, Dart, Delphi, Elixir, Erlang, Fantom, Go, Haskell, Io, Java, JavaScript, Julia, Lua, .NET, Objective-C, OCaml, Perl, PHP, Pharo, Python, R, Racket, Raku, Ruby, Rust, Scala, Smalltalk, Swift, Tcl, CFEngine and XQuery.

The following outline is provided as an overview of and topical guide to the Perl programming language:

Business Intelligence Markup Language

Business Intelligence Markup Language (Biml) is a domain-specific XML dialect for defining business intelligence (BI) assets. Biml authored BI assets can currently be used by the BIDS Helper add-on for Microsoft SQL Server Business Intelligence Development Studio (BIDS) and the Varigence Mist integrated development environment; both tools translate Biml metadata into SQL Server Integration Services (SSIS) and SQL Server Analysis Services (SSAS) assets for the Microsoft SQL Server platform. However, emitters can be created to compile Biml for any desired BI platform.

Nim (programming language) Programming language

Nim is an imperative, general-purpose, multi-paradigm, statically typed, and expressive, systems compiled programming language, designed and developed by a team around Andreas Rumpf. Nim is designed to be "efficient, expressive, and elegant", supporting metaprogramming, functional, message passing, procedural, and object-oriented programming styles by providing several features such as compile time code generation, algebraic data types, a foreign function interface (FFI) with C, C++, Objective-C, and JavaScript, and supporting compiling to those same languages.