СпидерМонкеy

Извор: Wikipedija
Пређи на навигацију Пређи на претрагу

СпидерМонкеy је кодни назив за први икада ЈаваСцрипт енгине, који је написао Брендан Аик у Нетсцапе Цоммуницатионс, касније објављен као опен соурце а сада га одржава Мозилла Фоундатион. СпајдерМанки обезбеђује ЈаваСцрипт подршку за Мозилла Фирефоx и различите уградње као што је ГНОМЕ 3 десктоп.

Историја

[уреди | уреди извор]

Аик "је написао ЈаваСцрипт за десет дана" 1995-е,[1] био је "регрутован у Нетсцапе уз обећање да ће 'радити Сцхеме' у претраживачу".[2] (Идеја коришћења Сцхеме је напуштена кад је "инжињерски менаџмент [одлучио] да језик мора ‘изгледати као Јава’".[2]) У јесен 1996,Аик, је морао да "отплати знатне техничке дугове" заостале још из прве године, "остао је кући две недеље да преправи Моцха-у као кодну базу која је постала позната као СпидерМонкеy".[1] Име СпидерМонкеy је можда изабрано позивање на филм Беавис анд Бутт-хеад До Америца, у ком јунак Том Андерсон помиње да су се слова у наслову "дркала као пар паук-мајмуна."[3] 2011., Аик је препустио управљање СпидерМонкеy кодом Дејву Менделину.[1]

ТрацеМонкеy

[уреди | уреди извор]

ТрацеМонкеy је први ЈИТ компајлер написан за ЈаваСцрипт језик. Компајлер је први кут изашао као део СпидерМонкеy-а у Фирефоx 3.5, омогућивши "побољшања перформанси између 20 и 40 пута" у односу на основни интерпретер у Фирефоx 3.[4]

Уместо компајлирања целих функција, ТрацеМонкеy је трацинг ЈИТ, који ради бележећи контроу тока и тип података током извршавања интерпретера. Ови подаци затим информишу конструкцију Траце Стабала, високо специјализованих путева првобитног кода.

Побољшања у ЈäгерМонкеy-у су евентуално учинила ТрацеМонкеy застарелим, поготово развијањем СпидерМонкеy тyпе инференце енџина. ТрацеМонкеy је одсутан из СпидерМонкеy-а од Фирефоx 11 па надаље.[5]

ЈäгерМонкеy

[уреди | уреди извор]

ЈäгерМонкеy,или унутрашње назван МетходЈИТ, је био ЈИТ компајлер дизајниран да унапреди перформансе у случајевима где ТрацеМонкеy није успевао да генерише стабилан изворни код.[6][7] Први пут се појавио са Фирефоx 4 и у потпуности заменио ТрацеМонкеy. Самом њега је касније заменио ИонМонкеy.

ЈäгерМонкеy је радио веома другачије од осталих компајлера из своје класе: док су типични компајлери радили тако што су конструисали и оптимизовали граф контроле тока представљајући функцију, ЈäгерМонкеy је функционисао тако што је линеарно пролазио кроз СпидерМонкеy бyтецоде,репрезентацију унутрашње функције. Иако ово забрањује оптимизацију која захтева поновно сортирање инструкција, ЈäгерМонкеy компајлирање је у предности јер је веома брзо, што је корисно за ЈаваСцрипт пошто је рекомпајлирање често због промена типова променљивих.

Мозилла је имплементирала велики број критичних оптимизација у ЈäгерМонкеy, најважнији су полиморфни редни кешс и закључивање типова.[8]

Разлике између ТрацеМонкеy и ЈäгерМонкеy ЈИТ техника и потреба за обема су објашњене у а хацкс.мозилла.орг артицле. Детаљно објашњење техничких детаља је навео Цхрис Леарy, један од креатора СпидерМонкеy-а, ин а блог пост Архивирано 2012-12-09 на Арцхиве.ис-у. Више техничких информација се може наћи на блоговима других дивелопера: двандер, дманделин Архивирано 2010-12-11 на Wаyбацк Мацхине-у.

Стандарди

[уреди | уреди извор]

СпидерМонкеy имплементира ЕЦМА-262 верзију 5.1 (ЕЦМАСцрипт) и још неколико додатих могућности. ЕЦМА-357 (ЕЦМАСцрипт фор XМЛ (Е4X)) је појавио на почетку 2013 .[9]

Иако се СпидерМонкеy користи у Фирефоx-у, он не омогућава хост окружење као Доцумент Објецт Модел (ДОМ). У Мозилла пројектима који подржавају ДОМ, Гецко омогућава хост окружење.

Интернали

[уреди | уреди извор]

СпидерМонкеy је написан у C/C++ и садржи интерпретер, ИонМонкеy ЈИТ компајлер, и сакупљаче смећа.

ИонМонкеy

[уреди | уреди извор]

ИонМонкеy је назив Мозилиног тренутног ЈаваСцрипт ЈИТ компајлера, који има за циљ да омогући много нових оптимизација које су биле немогуће у ЈäгерМонкеy архитектури.[10]

ИонМонкеy је традиционалнији: преводи СпидерМонкеy бyтецоде уграф контроле тока, користећи статиц сингле ассигнмент форм (ССА) за напредну репрезентацију. Ова архитектура омогућава да добро познате оптимизације из других програмских језика буду коришћене у ЈаваСцрипт-у, укључујући специјализацију типа, инлајнинг функције, линеарно скенирање алокацију регистара, елиминацију мртвог кода, и кретање кода инваријанте петље.[11]

Компајлер може да брзо емитује транслацију изворног кода ЈаваСцрипт функција не АРМ, x86, и x86-64 платформама. Он је стандардан енџин од Фирефоx 18.[12]

ОдинМонкеy

[уреди | уреди извор]

ОдинМонкеy је име Мозилиног новог модула оптимизаије за асм.јс, лако-компајлирајући подсет ЈаваСцрипт-а. ОдинМонкеy сам по себи није ЈИТ компајлер, он користи тренутни ЈИТ компајлер. Саставни је део Фирефоx-а од верзије 22.

Употреба

[уреди | уреди извор]

СпидерМонкеy треба да буде уграђен у другим апликацијама које пружају хост окружења за ЈаваСцрипт. Следи непотпуна листа:

СпидерМонкеy садржи ЈаваСцрипт Схелл интерактивни ЈаваСцрипт за развој и за позивање командне линије ЈаваСцрипт програмских фајлова.[16]

Неколико великих организација користи СпидерМонкеy да управља њиховим ЈаваСцрипт-ом за фронт-енд апликације.

Референце

[уреди | уреди извор]
  1. 1,0 1,1 1,2 Еицх, Брендан (21 Јуне 2011). „Неw ЈаваСцрипт Енгине Модуле Оwнер”. БренданЕицх.цом. 
  2. 2,0 2,1 Еицх, Брендан (3 Април 2008). „Популаритy”. БренданЕицх.цом. 
  3. Еицх, Брендан (19 Аугуст 2011). „Маппинг тхе Монкеyспхере”. Архивирано из оригинала на датум 2013-01-13. Приступљено 2015-06-01. 
  4. Паул, Рyан (2008-08-22). „Фирефоx то гет массиве ЈаваСцрипт перформанце боост”. Арс Тецхница. Приступљено 2013-03-21. 
  5. Нетхерцоте, Ницхолас (2011-11-01). „СпидерМонкеy ис он а диет | Ницхолас Нетхерцоте”. Блог.мозилла.цом. Приступљено 2013-03-21. 
  6. „ЈаегерМонкеy – Фаст ЈаваСцрипт, Алwаyс! » Мyстерy Баил Тхеатер”. Баилопан.нет. 2010-02-26. Приступљено 2013-03-21. 
  7. Паул, Рyан (2010-03-09). „Мозилла борроwс фром WебКит то буилд фаст неw ЈС енгине”. Арс Тецхница. Приступљено 2013-03-21. 
  8. „ЈаегерМонкеy - МозиллаWики”. Wики.мозилла.орг. Приступљено 2013-03-21. 
  9. „759422 – Ремове усе оф е4x ин аццоунт цреатион”. Приступљено 5 Фебруарy 2013. 
  10. „Платформ/Феатурес/ИонМонкеy - МозиллаWики”. Wики.мозилла.орг. 2013-02-11. Приступљено 2013-03-21. 
  11. „ИонМонкеy: Мозилла’с неw ЈаваСцрипт ЈИТ цомпилер”. Инфоq.цом. Приступљено 2013-03-21. 
  12. „Фирефоx Нотес - Десктоп”. Мозилла.орг. 2013-01-08. Приступљено 2013-03-21. 
  13. Болсо, Ерик Инге (8 Марцх 2005). „2005 Теxт Моде Броwсер Роундуп”. линуx Јоурнал. Приступљено 5 Аугуст 2010. 
  14. wине-цвс маилинг лист, 16 Септембер 2008: "јсцрипт: Аддед регулар еxпрессион цомпилер басед он Мозилла регеxп имплементатион"
  15. „Тхе Релеасе Риак 0.8 анд ЈаваСцрипт Мап/Редуце”. Приступљено 2011-04-24. 
  16. „Интродуцтион то тхе ЈаваСцрипт схелл”. МДН. Мозилла Девелопер Нетwорк. 2010-09-29. Архивирано из оригинала на датум 2011-06-29. Приступљено 2010-12-14. »Тхе ЈаваСцрипт схелл ис а цомманд-лине програм инцлудед ин тхе СпидерМонкеy соурце дистрибутион. [...] Yоу цан усе ит ас ан интерацтиве схелл [...] Yоу цан алсо пасс ин, он тхе цомманд лине, а ЈаваСцрипт програм филе то рун [...]« 

Спољашње везе

[уреди | уреди извор]