V6 (Perl)

Last updated

v6 is a module for the Perl programming language which runs under Perl version 5, and transforms Perl 6 code into Perl 5 code on the fly. To quote the release notes:

Perl interpreted programming language

Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages, Perl 5 and Perl 6.

Perl 6 sixth major version of the Perl programming language

Perl 6 is a member of the Perl family of programming languages.

Contents

In summary: Perl 5 is now a first-class virtual machine for Pugs, and in this journey toward self-hosting, we will share as much common structure as possible between the Perl 5, Haskell, and the Parrot runtimes. [1]

Components

v6 has many parts, divided into a stack of services which can be used to write Perl 6 code directly, or to implement Perl 6 features in Perl 5 programs.

Moose

Moose and other modules such as Class::MOP provide a low-level emulation of Perl 6's object model and meta-object protocol. This object model can be used directly or through v6.

Moose is an extension of the object system of the Perl programming language. Its stated purpose is to bring modern object-oriented language features to Perl 5, and to make object-oriented Perl programming more consistent and less tedious.

Pugs::Grammar::Rule

Pugs::Grammar::Rule provides access to Perl 6's "rules", which are a superset of classic regex functionality which allow the development of entire grammars.

Data::Bind

Data::Bind provides the parameter binding features of Perl 6, including named parameters.

Module::Compile

Module::Compile is like a source-filter, but is safer for real-world code development. It is this module which allows v6 to parse Perl 6 code and directly translate it into Perl 5 code which is then executed.

Notes

  1. audreyt. "Pugs 6.2.12 and v6.pm released!". use Perl.

Related Research Articles

Integrated development environment software application used to develop software

An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales. Van Rossum led the language community until stepping down as leader in July 2018.

VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers with error handling, subroutines, and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.

Java Platform, Standard Edition is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).

In computer programming, the scope of a name binding – an association of a name to an entity, such as a variable – is the region of a computer program where the binding is valid: where the name can be used to refer to the entity. Such a region is referred to as a scope block. In other parts of the program the name may refer to a different entity, or to nothing at all.

Visual Basic .NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language. Although the ".NET" portion of the name was dropped in 2005, this article uses "Visual Basic [.NET]" to refer to all Visual Basic languages released since 2002, in order to distinguish between them and the classic Visual Basic. Along with Visual C#, it is one of the two main languages targeting the .NET framework.

In computing, the Perl DBI offers a standardized way for programmers using the Perl programming language to embed database communication within their programs. The latest DBI module for Perl from CPAN can run on a range of operating systems.

Perl Data Language is a set of free software array programming extensions to the Perl programming language. PDL extends the data structures built into Perl, to include large multidimensional arrays, and adds functionality to manipulate those arrays as vector objects. It also provides tools for image processing, computer modeling of physical systems, and graphical plotting and presentation. Simple operations are automatically vectorized across complete arrays, and higher-dimensional operations are supported.

Pugs is a compiler and interpreter for the Perl 6 programming language, started on February 1, 2005, by Audrey Tang.

LAMP (software bundle) software bundle

LAMP is an archetypal model of web service stacks, named as an acronym of the names of its original four open-source components: the Linux operating system, the Apache HTTP Server, the MySQL relational database management system (RDBMS), and the PHP programming language. The LAMP components are largely interchangeable and not limited to the original selection. As a solution stack, LAMP is suitable for building dynamic web sites and web applications.

Catalyst (software) open source software

Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by such frameworks as Ruby on Rails, Maypole, and Spring.

A foreign function interface (FFI) is a mechanism by which a program written in one programming language can call routines or make use of services written in another.

The Speech Application Programming Interface or SAPI is an API developed by Microsoft to allow the use of speech recognition and speech synthesis within Windows applications. To date, a number of versions of the API have been released, which have shipped either as part of a Speech SDK or as part of the Windows OS itself. Applications that use SAPI include Microsoft Office, Microsoft Agent and Microsoft Speech Server.

The Parser Grammar Engine is a compiler and runtime for a Perl 6 rules for the Parrot virtual machine. PGE uses these rules to convert a parsing expression grammar into Parrot bytecode. It is therefore compiling rules into a program, unlike most virtual machines and runtimes, which store regular expressions in a secondary internal format that is then interpreted at runtime by a regular expression engine. The rules format used by PGE can express any regular expression and most formal grammars, and as such it forms the first link in the compiler chain for all of Parrot's front-end languages.

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

Kotlin (programming language) systems programming language

Kotlin is a cross-platform, statically typed, general-purpose programming language with type inference. Kotlin is designed to interoperate fully with Java, and the JVM version of its standard library depends on the Java Class Library, but type inference allows its syntax to be more concise. Kotlin mainly targets the JVM, but also compiles to JavaScript or native code. Kotlin is sponsored by JetBrains and Google through the Kotlin Foundation.

Swift is a general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. for iOS, macOS, watchOS, tvOS, Linux, and z/OS. Swift is designed to work with Apple's Cocoa and Cocoa Touch frameworks and the large body of existing Objective-C code written for Apple products. It is built with the open source LLVM compiler framework and has been included in Xcode since version 6, released in 2014. On Apple platforms, it uses the Objective-C runtime library which allows C, Objective-C, C++ and Swift code to run within one program.