|
Parrot
|
|
bogdan-G | Дата: Пятница, 19 Августа 2011, 15:24:37 | Сообщение # 1 |
Самый главный на сайте!
Группа: Администраторы
Сообщений: 620
Статус: Offline
| Parrot (пэррот или паррот; от англ. parrot — попугай) — виртуальная машина, используемая интерпретируемыми языками для эффективного исполнения байт-кода. Название происходит от первоапрельской шутки (англ.), когда было объявлено о создании нового языка, объединяющего Perl и Python.
Одной из важных причин для разработки новой виртуальной машины стало различие между языками со статическими и динамическими типами данных. Современные распространенные виртуальные машины, как, например Java VM и .NET CLR были разработаны для языков со статическими типами данных, тогда как языки, на поддержку которых нацелен Parrot используют динамические типы. Виртуальная машина Parrot основана на использовании регистров, а не стека, так как, по мнению разработчиков, это увеличивает скорость и лучше отражает устройство современных процессоров.
Parrot будет основой интерпретатора Perl, а также будет целевой платформой для компиляции кода Perl 6. Кроме реализованной части Perl 6, в байткод можно скомпилировать программы на других языках, включая APL, BASIC, Befunge, Brainfuck, Cola, Forth, Jako, Lisp, m4, Miniperl, Ook!, Parakeet, OpenComal, PHP, Plot, Pheme, Punie, Python, Ruby, Scheme, Span, Tcl, URM и YAL, но большая часть реализаций этих языков для Parrot неполна и находится в экспериментальном состоянии.Содержание [убрать] 1 Примеры 1.1 Регистры 1.2 Parrot Assembly Language 2 Поддерживаемые платформы 3 Смотреть также 4 Примечания 5 Ссылки
[править] Примеры [править] Регистры
Parrot основан на использовании регистров, в отличие от большинства виртуальных машин, основанных на стеке. Parrot предоставляет 4 типа регистров: I: целые числа (от англ. integer) N: числа с плавающей точкой (от англ. number) S: расширенные строковые регистры с поддержкой Юникода (от англ. string) P: PMC, или Parrot Magic Cookie — специальный тип объектов Parrot
До версии 0.3.0 включительно, Parrot обычно предоставлял программам по 32 регистра каждого типа, с возможностью увеличения этого числа до 64. Более поздние версии стали предоставлять неограниченное число регистров; каждая функция может запросить столько регистров, сколько ей требуется. [править] Parrot Assembly Language
Кроме, непосредственно, байткода в Parrot есть специальный язык низкого уровня Parrot Assembly Language (PASM). Ниже приведен пример небольшой программы на нём: set I1, 4 # Запись в регистр I1 числа 4 inc I1 # Инкремент I1 add I1, 2 # Добавление к I1 двойки; значение в I1 станет равным 7 set N1, 42.0 # Запись в N1 значения 42.0 dec N1 # Декремент N1, новое значение будет 41.0 sub N1, 2.0 # N1 станет равным 39.0 print I1 # Вывод содержимого I1 print ", " # Вывод строки «, » print N1 # Вывод значения N1 print "\n" # Вывод символа перевода строки end [править] Поддерживаемые платформы
Parrot компилируется и запускается на большом числе платформ, включая все самые распространенные, в том числе Linux (x86), Cygwin, Win32, Tru64, OpenVMS (Alpha), Solaris (Sparc), FreeBSD (x86). [править] Смотреть также Библиотека libJIT для компиляции на лету от Риза Везерли, Клауса Трейчела, Алексея Демакова и Кирилла Кононенко
админ сайта ---------------------------------- если помог + в репу!
|
|
| |
bogdan-G | Дата: Пятница, 19 Августа 2011, 15:28:36 | Сообщение # 2 |
Самый главный на сайте!
Группа: Администраторы
Сообщений: 620
Статус: Offline
| Виртуальная машина Parrot — runtime engine для языков программирования с динамической типизацией, таких как Perl, Python, Ruby и PHP. Первоначально ориентированная на Perl 6, она впоследствии была расширена как general-purpose динамическая виртуальная машина для различных языков высокого уровня.
Parrot has been designed, in part, for ease of use by programmers and language designers. A series of tools called the Parrot Compiler Tools (PCT) have been designed that facilitate the creation of new languages for Parrot. These tools aide in creating new dynamic programming languages or implementing old languages on Parrot.
This book is going to introduce the reader to the Parrot Virtual Machine and the Parrot programming environment. We will discuss the creation of programs in the PIR and PASM languages and we will also discuss how to create new languages that compile to the Parrot platform. We will also talk about Parrot itself, and introduce the reader to Parrot’s internals, which are released under an open source license and can be modified by able volunteers.Содержание [убрать] 1 Оглавление 1.1 Введение в Parrot 1.2 Программирование для Parrot’а 1.3 Компиляционные утилиты Parrot’а 1.4 Parrot Hacking 1.5 Приложение 2 Ссылки
[править] Оглавление [править] Введение в Parrot Введение Сборка Parrot’а Запуск Parrot’а [править] Программирование для Parrot’а Программирование на Parrot’е PASM PIR PMC Многопоточность и coroutines Исключения Классы и объекты Parrot-дебагер [править] Компиляционные утилиты Parrot’а [править] Parrot Hacking [править] Приложение [править] Ссылки
These blog posts are released into the public domain and can be adapted directly: http://www.parrotblog.org/2008/03/targeting-parrot-vm.html http://www.parrotblog.org/2008....ts.html http://www.parrotblog.org/2008....st.html http://www.parrotblog.org/2008/03/episode-4-past-nodes-and-more.html http://www.parrotblog.org/2008....nd.html http://www.parrotblog.org/2008/03/episode-6-scope-and-subroutines.html http://www.parrotblog.org/2008....ce.html http://www.parrotblog.org/2008/03/episode-8-hashtables-and-arrays.html
Other Resources Parrot Documentation Parrot Design Docs Parrot Project Home
админ сайта ---------------------------------- если помог + в репу!
|
|
| |
bogdan-G | Дата: Пятница, 19 Августа 2011, 15:28:45 | Сообщение # 3 |
Самый главный на сайте!
Группа: Администраторы
Сообщений: 620
Статус: Offline
| Виртуальная машина Parrot/Введение < Виртуальная машина ParrotСодержание [убрать] 1 Для кого эта книга? 2 И о чём она? 3 Что такое Parrot 4 История Parrot 5 Фонд Parrot 6 Как поучаствовать в проекте Parrot? 6.1 Разработчики Parrot 7 Где получить дополнительную информацию? 8 Ссылки
[править] Для кого эта книга?
This book is for readers at the intermediate to advanced level with a solid background in computer programming. Perl Programming would be a good start, although a background in any dynamic language would be helpful. Having a background in Compiler Construction, Regular Expressions, or the compiler-building tools Lex and Yacc would also be a benefit.
For the sections about Parrot hacking, a background knowledge of C Programming is required. [править] И о чём она? [править] Что такое Parrot
Parrot (пэррот или паррот; от англ. parrot — попугай) - виртуальная машина, на подобие Java VM или .NET VM. Однако, в отличие от них, Parrot ориентирован на языки с динамической типизацией, такие, как Perl, Python, Ruby или PHP, а не на языки со статической типизацией, такие как Java или C#. Сам Паррот написан на C, что даёт ему (теоретически) переносимость на различные архитектуры и ОС. Он написан так, чтобы быть модульным и расширяемым. Программисты могут написать программу на любом из языков, для которых есть компилятор в Паррот.Modules written in one language, such as Perl, can transparently interoperate with modules which have originally been written in any of the other languages supported by Parrot. This easy interoperability and native support for cutting-edge dynamic programming features makes Parrot an important tool for next-generation language designers and implementers. It is precisely because Parrot is intended to support so many diverse high level languages that Parrot has developed a very general and feature-rich architecture. Much of the Parrot architecture is still under active development, so those parts will not be able to be properly discussed here in this book quite yet. Once Parrot reaches a stable release, and more details are set in stone, this book will be able to provide a more comprehensive coverage. [править] История Parrot
Проект Parrot родился из проекта Perl 6. Как известно, ранняя разработка Паррота была тестно всязана с разработкой Perl 6. И после того, как вы поймёте, насколько большой и амбициозный Perl 6, вы начнёте понимать, почему Паррот должен иметь все особенности, которые он имеет.
It was famously quoted about version 5 of the Perl programming language that "nothing can parse Perl but perl". The implication was that the perl executable was the only program that could reliably parse the Perl programming language. There were two reasons for this. First, the Perl language didn't follow any formal specification; The behavior of the perl interpreter was the definitive documentation for the actions of Perl. Second, the Perl programming language allowed the use of source filters, programs which could modify their own source code prior to execution. This means that to reliably parse and understand a Perl program, you needed to be able to execute the source filters reliably. The only program that could do both was perl.
The next planned version of Perl, Perl 6, was supposed to be a major rewrite of the language. In addition to standardizing and bringing sanity to all the features which had slowly entered the language grammar, it was decided that Perl 6 would be a formal specification first, and implementations of that specification later.
The name "Parrot" was first used as an April Fool's joke. The story claimed that the Perl and Python languages (which are competitors, and which were both undergoing major redesigns) were going to merge together into a single language named Parrot. This was, of course, a hoax, but the idea was a powerful one. When the project was started to create a virtual machine that would be capable of running not only Perl 6, but also Python and other dynamic languages, the name Parrot was a perfect fit.
Первая версия Паррота (v0.0.1) была опубликована в сентябре 2001 года. Команда разработчиков готовит стабильный релиз каждый третий вторник каждого месяца. [править] Фонд Parrot [править] Как поучаствовать в проекте Parrot? [править] Разработчики Parrot [править] Где получить дополнительную информацию? [править] Ссылки http://www.parrotcode.org/docs/intro.html http://www.parrotcode.org/docs/roadmap.html http://www.parrotcode.org/docs/parrothist.html Категория: Виртуальная машина Parrot
админ сайта ---------------------------------- если помог + в репу!
|
|
| |
| |