[opensuse-es] [Info] Programar con Parrot
Mirando [Linux Magazine] The Week in Review, me encuentro con un articulo "Why Parrot is Important" sobre Parrot que es una máquina virtual multiplataforma que es capaz de compilar e interpretar desde la línea de comandos el código de varios lenguajes de programación dinámicos. Cuenta con dos características funcionales de vital importancia que la diferencian del resto de máquinas virtuales. La primera de ellas es el uso de registros en su CPU en lugar de la arquitectura de pilas y la segunda es la implementación de un sistema de multithreading automático. Los lenguajes de programación que por ahora soporta Parrot son los siguientes: Ruby, Python, Perl, .NET, Tcl, PHP, Javascript, Lua, APL o Scheme. La lista completa incluye más de 50 lenguajes dinámicos. http://www.linux-mag.com/cache/7373/1.html http://www.parrot.org/ El listado de lenguajes soportados es el siguiente: * abc — An implementation of bc * APL — An implementation of APL * BASIC — An implementation of BASIC, Microsoft QuickBASIC 4.5 * befunge — An implementation of Befunge-93 * bf — An implementation of Brainf**k * c99 — An implementation of C programming language, C99 dialect * Cardinal — An implementation of Ruby 1.9 * chitchat — An implementation of Smalltalk * dotnet — A .Net bytecode translator * eclectus — An implementation of Scheme * ecmascript — An implementation of ECMAScript * forth — An implementation of Forth * fun — An implementation of Joy * gil — Generic Imperative Language * hq9plus — An implementation of HQ9 Plus * jako — An implementation of Jako * jvm — A Java VM bytecode translator * json — An implementation of JSON * Kea-CL — An implementation of Common Lisp * lazy-k — An implementation of Lazy K * lisp — An implementation of LISP * lolcode — An implementation of LOLCODE * lua — An implementation of Lua 5.1 * Lua2PIR — An implementation of Lua 5.1 * matrixy — An implementation of Octave * m4 — An implementation of GNU m4 * markdown — An implementation of Markdown * NQP — A lightweight language used in Parrot's compiler tools * Monkey — An implementation of Lua 5.1 * ook — An implementation of Ook! * partcl — An implementation of Tcl * pheme — An implementation of Scheme * Perk — An implementation of Java * Pipp — An implementation of PHP * Pirate — An implementation of Python * PJS — An implementation of ECMAScript * primitivearc — An implementation of Arc * Punie — An implementation of Perl 1.0 * Pynie — An implementation of Python * Rakudo Perl 6 — An implementation of Perl 6 * scheme — An implementation of Scheme * Scheme to PIR with Chicken — An implementation of Scheme * shakespeare-parrot — An implementation of Shakespeare * squaak — A tutorial language * unlambda — An implementation of Unlambda * WMLScript — An implementation of WMLScript La unica alusión directa al lenguje C, es: c99 — An implementation of C programming language, C99 dialect En la sección Parrot Compiler Tools dice: http://docs.parrot.org/parrot/latest/html/docs/book/ch04_compiler_tools.pod.... Parrot exposes a rich interface for these languages to use, offering several important features: a robust exceptions system, compilation into platform-independent bytecode, a clean extension and embedding interface, just-in-time compilation to machine code, native library interface mechanisms, garbage collection, support for objects and classes, and a robust concurrency model. Designing a new language or implementing a new compiler for an old language is easier with all of these features designed, implemented, tested, and supported in a VM already. Language interoperability is a core goal for Parrot. Different languages are suited to different tasks; heated debates explode across the Internet about which language is right for which project. There's rarely a perfect fit. Developers often settle for one particular language if only because it offers the fewest disadvantages. Parrot changes this game by allowing developers to combine multiple languages seamlessly within a single project. Well-tested libraries written in one languages can interoperate with clean problem-domain expression in a second language, glued together by a third language which elegantly describes the entire system's architecture. You can use the strengths of multiple language and mitigate their weaknesses. For language hosting and interoperability to work, languages developers need to write compilers that convert source code written in high level languages to bytecode. This process is analogous to how a compiler such as GCC converts C or C++ into machine code -- though instead of targeting machine code for a specific hardware platform, compilers written in Parrot produce Parrot code which can run on any hardware platform that can run Parrot. Parrot includes a suite of compiler tools for every step of this conversion: lexical analysis, parsing, optimization, resource allocation, and code generation. Instead of using traditional low-level languages -- such as the C produced by lex and yacc -- to write compilers, Parrot can use any language hosted on Parrot in its compiler process. As a practical matter, the prevalent tool uses a subset of the Perl 6 programming language called Not Quite Perl (NQP) and an implementation of the Perl 6 Grammar Engine (PGE) to build compilers for Parrot. Alguien sabe mas del tema? Yo no lo he usado aun. Salu2 Salu2 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
participants (1)
-
Juan Erbes