SpiderMonkey
SpiderMonkey је кодни назив за први икада JavaScript engine, који је написао Брендан Аик у Netscape Communications, касније објављен као open source а сада[када?] га одржава Mozilla Foundation. СпајдерМанки обезбеђује JavaScript подршку за Mozilla Firefox и различите уградње као што је GNOME 3 десктоп. ИсторијаАик "је написао JavaScript за десет дана" 1995-е,[3] био је "регрутован у Netscape уз обећање да ће 'радити Scheme' у претраживачу".[4] (Идеја коришћења Scheme је напуштена кад је "инжињерски менаџмент [одлучио] да језик мора ‘изгледати као Java’".[4]) У јесен 1996,Аик, је морао да "отплати знатне техничке дугове" заостале још из прве године, "остао је кући две недеље да преправи Mocha-у као кодну базу која је постала позната као SpiderMonkey".[3] Име SpiderMonkey је можда изабрано позивање на филм Beavis and Butt-head Do America, у ком јунак Tom Anderson помиње да су се слова у наслову "дркала као пар паук-мајмуна."[5] 2011., Аик је препустио управљање SpiderMonkey кодом Дејву Менделину.[3] TraceMonkeyTraceMonkey је први JIT компајлер написан за JavaScript језик. Компајлер је први кут изашао као део SpiderMonkey-а у Firefox 3.5, омогућивши "побољшања перформанси између 20 и 40 пута" у односу на основни интерпретер у Firefox 3.[6] Уместо компајлирања целих функција, TraceMonkey је tracing JIT, који ради бележећи контроу тока и тиp података током извршавања интерпретера. Ови подаци затим информишу конструкцију Trace Стабала, високоспецијализованих путева првобитног кода. Побољшања у JägerMonkey-у су евентуално учинила TraceMonkey застарелим, поготово развијањем SpiderMonkey type inference енџина. TraceMonkey је одсутан из SpiderMonkey-а од Firefox 11 па надаље.[7] JägerMonkeyJägerMonkey,или унутрашње назван MethodJIT, је био JIT компајлер дизајниран да унапреди перформансе у случајевима где TraceMonkey није успевао да генерише стабилан изворни код.[8][9] Први пут се појавио са Firefox 4 и у потпуности заменио TraceMonkey. Самом њега је касније заменио IonMonkey. JägerMonkey је радио веома другачије од осталих компајлера из своје класе: док су типични компајлери радили тако што су конструисали и оптимизовали граф контроле тока представљајући функцију, JägerMonkey је функционисао тако што је линеарно пролазио кроз SpiderMonkey bytecode,репрезентацију унутрашње функције. Иако ово забрањује оптимизацију која захтева поновно сортирање инструкција, JägerMonkey компајлирање је у предности јер је веома брзо, што је корисно за JavaScript пошто је рекомпајлирање често због промена типова променљивих. Mozilla је имплементирала велики број критичних оптимизација у JägerMonkey, најважнији су полиморфни редни кешs и закључивање типова.[10] Разлике између TraceMonkey и JägerMonkey JIT техника и потреба за обема су објашњене у a hacks.mozilla.org article. Детаљно објашњење техничких детаља је навео Chris Leary, један од креатора SpiderMonkey-а, in a blog post. Више техничких информација се може наћи на блоговима других дивелопера: dvander, dmandelin. СтандардиSpiderMonkey имплементира ECMA-262 верзију 5.1 (ECMAScript) и још неколико додатих могућности. ECMA-357 (ECMAScript for XML (E4X)) је појавио на почетку 2013 .[11] Иако се SpiderMonkey користи у Firefox-у, он не омогућава хост окружење као Document Object Model (DOM). У Mozilla пројектима који подржавају DOM, Gecko омогућава хост окружење. ИнтерналиSpiderMonkey је написан у C/C++ и садржи интерпретер, IonMonkey JIT компајлер, и сакупљаче смећа. IonMonkeyIonMonkey је назив Мозилиног тренутног JavaScript JIT компајлера, који има за циљ да омогући много нових оптимизација које су биле немогуће у JägerMonkey архитектури.[12] IonMonkey је традиционалнији: преводи SpiderMonkey bytecode уграф контроле тока, користећи static single assignment form (SSA) за напредну репрезентацију. Ова архитектура омогућава да добро познате оптимизације из других програмских језика буду коришћене у JavaScript-у, укључујући специјализацију типа, инлајнинг функције, линеарно скенирање алокацију регистара, елиминацију мртвог кода, и кретање кода инваријанте петље.[13] Компајлер може да брзо емитује транслацију изворног кода JavaScript функција не ARM, x86, и x86-64 платформама. Он је стандардан енџин од Firefox 18.[14] OdinMonkeyOdinMonkey је име Мозилиног новог модула оптимизаије за asm.js, лако-компајлирајући подсет JavaScript-а. OdinMonkey сам по себи није JIT компајлер, он користи тренутни JIT компајлер. Саставни је део Firefox-а од верзије 22. УпотребаSpiderMonkey треба да буде уграђен у другим апликацијама које пружају хост окружења за JavaScript. Следи непотпуна листа:
SpiderMonkey садржи JavaScript Shell интерактивни JavaScript за развој и за позивање командне линије JavaScript програмских фајлова.[18] Неколико великих организација користи SpiderMonkey да управља њиховим JavaScript-ом за front-end апликације. Види јошРеференце
Спољашње везе
|
Portal di Ensiklopedia Dunia