Carakan

Jens Lindström, “Carakan”, public translation into Russian from English More about this translation.

See also 11 similar translations

Translate into another language.

Participants

stalkerstyle59 points
dionys6 points
kurokikaze1 no points
Join Translated.by to translate! If you already have a Translated.by account, please sign in.
If you do not want to register an account, you can sign in with OpenID.
Pages: ← previous Ctrl next next untranslated
1 2 3

Carakan

Carakan

History of edits (Latest: kurokikaze 3 years, 3 months ago) §

Over the past few months, a small team of developers and testers have been working on implementing a new ECMAScript/JavaScript engine for Opera. When Opera's current ECMAScript engine, called Futhark, was first released in a public version, it was the fastest engine on the market. That engine was developed to minimize code footprint and memory usage, rather than to achieve maximum execution speed. This has traditionally been a correct trade-off on many of the platforms Opera runs on. The Web is a changing environment however, and tomorrow's advanced web applications will require faster ECMAScript execution, so we have now taken on the challenge to once again develop the fastest ECMAScript engine on the market.

На протяжении последних нескольких месяцев небольшая команда, состоящая из разработчиков и тестировщиков трудилась над реализацией нового ECMAScript/JavaScript-движка для браузера Opera. Когда впервые выпустился ECMAScript движок, именуемый Futhark, который на сегодняшний день используется в Opera, в качестве публичной версии, то это был самый быстрый движок, представленный на рынке.

History of edits (Latest: dionys 2 years, 10 months ago) §

The name Carakan, like the names of Opera's previous ECMAScript engines, Futhark, Linear A and Linear B, is the name of a writing system, or "script".

We have focused our efforts to improve upon our previous engine in three main areas:

Мы направили наши усилия на улучшение нашего предыдущего движка в трех основных направлениях:

History of edits (Latest: stalkerstyle 3 years ago) §

Register-based bytecode

The last couple of generations of Opera's ECMAScript engine have used a stack-based bytecode instruction set. This type of instruction set is based around a stack of values, where most instructions "pop" input operands from the value stack, process them, and "push" the result back onto the value stack. Some instructions simply push values onto the value stack, and others rearrange the values on the stack. This gives compact bytecode programs and is easy to generate bytecode for.

In the new engine, we've instead opted for a register-based bytecode instruction set. In a register-based machine, instead of a dynamically sized stack of values, there's a fixed size block of them, called "registers". Instead of only looking at the values at the top of the stack, each instruction can access any register. Since there is no need to copy values to and from the top of the stack to work on them, fewer instructions need to be executed, and less data needs to be copied.

Native code generation

Although our new engine's bytecode instruction set permits the implementation of a significantly faster bytecode execution engine, there is still significant overhead involved in executing simple ECMAScript code, such as loops performing integer arithmetics, in a bytecode interpreter. To get rid of this overhead we are implementing compilation of whole or parts of ECMAScript programs and functions into native code.

Pages: ← previous Ctrl next next untranslated
1 2 3