Јулија (програмски језик)
Јулија је динамички и програмски језик високог нивоа дизајниран да одговори на захтеве развијених нумеричких и научних израчунавања, али је такође ефективан за ефективно опште програмирање,[7][8][9][10] веб употребу[11][12], може се користити и за спецификацију програмског језика.[13] Карактеристике Јулија програмског језика обухватују типски систем у пакету са параметарским типским системом у облику целокупног динамичног програмског језика, као и у облику посебних пакета у облику сопственог језгра програмске парадигме. Омогућава истовремено, паралелно и дистрибуирано израчунавање, и директно позивање библиотека програмских језика C и Фортран, без посебног кода. Јулија је сакупљач смећа,[14] програм који користи жељену процену и у себи садржи ефикасне библиотеке за израчунавања, линеарну алгебру, насумичну генерацију бројева, брзе Фуријерове трансформације и упоређивање регуларних израза. Карактеристике програмског језикаКако нам званични сајт каже, главне карактеристике овог програмског језика су:
Вишеструко отпремање (познато још и као "вишеструке методе" у Lisp-у) представља упрошћавање једног отпремања - најчешће се користи полиморфни механизам у објектно оријентисаним (ОО) програмима који користе наслеђивање. У Јулији, сви конкретни типови су подтипови апстрактних типова, директно или индиректно подитпови "Ени (any)" типова, који су на врху хијерархије. Конкретни типови не могу бити подтипови, али се њихова композиција користи преко наслеђивања, које користе објектно оријентисани програми (такође видети Наслеђивање против подтипова).
У Јулији, Дилану и Фортресу, са друге стране гледиша, ова моћ проширивања је стандардна, и системи уграђених функција су генерички и прошириви. У Дилану, вишеструко упрошћавање је основна функција као што је случај у Јулији: све кориснички дефинисане функције па чак и основне уграђене операције, као што је
ИнтеракцијаЈулијина званична дистрибуција обухвата интерактивни шел, који се назива РЕПЛ, који се може користити за експериментисање и брзо тестирање кода.[19] Следећи фрамгент представља једноставан пример РЕПЛ-а:[20] julia> p(x) = 2x^2 + 1; f(x, y) = 1 + 2p(x)y
julia> println("Hello world!", " I'm on cloud ", f(0, 4), " as Julia supports recognizable syntax!")
Hello world! I'm on cloud 9 as Julia supports recognizable syntax!
РЕПЛ омогућава приступ систему шела и има помоћни режим, притискањем $ julia <filename> Јулија је такође подржана од стране Јупитера, онлајн интерактивног "нутбукс (notebooks)" окружења (пројектовани Јупитер је вишејезична екстензија, која је "добијена" из ИПајтонове (IPython) командне линије; која садржи Јулију).
Коришћење Јулије на другим језицимаЈулијин Јулија има Јуникод подршку, уз помоћ UTF-8 који се користи за изворни код који углавном дозвољава уобичајне математичке симобле за различите операције, као што је нпр. ∈ за Јулија има пакете који подржавају језике за означавање као што су, HTML (такође за HTTP), XML, JSON, BSON (и MongoDB) итд. ИмплементацијаЈулијино језгро је имплементирано у C и C++ (C++ зависи од ВМНР), сопственом парсеру у Шем програмском језику ("фемтолисп"), док се ВМНР оквирни компајлер користи у "тачно на време" (ТНВ) генерацијама 64-битних или 32-битних машинских кодова (нпр. не и за виртуелну машину[22]) у зависности од платформе коју Јулија користи. Уз неколико изузетака (нпр. либув), стандардна библиотека је самостално уграђена у Јулији. Најзначајнији аспект Јулијине имплементације је брзина, која је често фактор две безе у односу на потпуно оптимизован C код (а самим тим често магнитуда расте брже него у Пајтону или Р-у).[23] Развој програмског језика Јулија је започет 2009. године док је верзија отвореног кода објављена у Фебруару 2012. године.[1][24] Јулија, 0.4 линија, представља распоред који излази једном месечно где су исправљени сви багови и где враћају/додају неке карактеристике.[25] Тренутне и будуће платформеДок Јулија користи ТНВ[26] (МЦТНВ[27] из ВМНР-а) – Јулија генерише све природне машинске кодове, директно када се функција покрене први пут (небајткод покренут на виртуелној машини, нпр. преко Јаве/Далвика) Тренутна подршка за новије x86 или старије и386 процесоре и у 0.4.0. 32-битној АРМ архитектури ("Експериментална и рана подршка"[28] уз помоћ "посла у току - за неколико тестова је познато да су неположени, и да се не могу видети"[29] уз помоћ алфа подршке за Распбери Пи 1/2[30][31] али "[на АРМv7] Самсунговој хром-књизи [..] Јулија се покреће сасвим добро"[32]), 64-битном АРМv8[33] и PowerPC.[тражи се извор][34] Јулија2Ц "извор-до-извора" компајлерЈулија2Ц "извор до извора" компајлер се може набавити из Интелове лабораторије.[35] Овај "извор до извора" компајлер је Јулијин форк, који имплементира исту програмску синтаксу као у Јулији, који емитује C код (због компактибилности са процесором) уместо природног машинског кода за функције или целе програме. Компајлер дозвољава анализирање кода на већем ниво него у програмском језику C.[36] Белешке
Референце
Спољашње везе
|
Portal di Ensiklopedia Dunia