{"id":108413,"date":"2023-05-08T12:48:42","date_gmt":"2023-05-08T10:48:43","guid":{"rendered":"https:\/\/prohoster.info\/?p=108413"},"modified":"2023-05-08T16:10:08","modified_gmt":"2023-05-08T14:10:08","slug":"sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","title":{"rendered":"Creatorul LLVM dezvolt\u0103 un nou limbaj de programare Mojo","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Chris Lattner, fondatorul \u0219i arhitectul principal al LLVM, precum \u0219i creatorul limbajului de programare Swift, \u0219i Tim Davis, fost director al proiectelor AI la Google, cum ar fi TensorFlow \u0219i JAX, au prezentat un nou limbaj de programare numit Mojo, care combin\u0103 u\u0219urin\u021ba de utilizare pentru dezvolt\u0103rile de cercetare \u0219i prototipuri rapide cu adecvarea pentru crearea produselor finale de \u00eenalt\u0103 performan\u021b\u0103. Prima caracteristic\u0103 este realizat\u0103 prin utilizarea sintaxei familiare a limbajului Python, iar a doua prin posibilitatea de compilare \u00een cod ma\u0219in\u0103, mecanismele de gestionare sigur\u0103 a memoriei \u0219i utilizarea resurselor pentru accelerarea hardware-ului \u00een calcule.    <\/p>\n<p>Proiectul se concentreaz\u0103 pe utilizarea pentru dezvolt\u0103ri \u00een domeniul \u00eenv\u0103\u021b\u0103rii automate, dar se prezint\u0103 ca un limbaj de uz general, extinz\u00e2nd capacit\u0103\u021bile limbajului Python prin metode de programare sistemic\u0103 \u0219i fiind potrivit pentru o gam\u0103 larg\u0103 de sarcini. De exemplu, limbajul este aplicabil \u00een domenii precum calculul de \u00eenalt\u0103 performan\u021b\u0103, procesarea \u0219i transformarea datelor. O caracteristic\u0103 interesant\u0103 a Mojo este posibilitatea de a specifica simbolul emoji &#171;&#128293;&#187; ca extensie pentru fi\u0219ierele cu cod (de exemplu, &#171;helloworld.&#128293;&#187;), pe l\u00e2ng\u0103 extensia text &#171;.mojo&#187;.       <\/p>\n<p>\u00cen prezent, limbajul se afl\u0103 \u00een stadiul de dezvoltare intens\u0103 \u0219i pentru testare este disponibil doar un interfa\u021b\u0103 online. Se promite c\u0103 vor fi publicate versiuni separate pentru rularea pe sisteme locale ulterior, dup\u0103 primirea feedback-ului cu privire la func\u021bionarea mediului web interactiv. Codurile surs\u0103 ale compilatorului, JIT-ului \u0219i alte lucr\u0103ri legate de proiect urmeaz\u0103 s\u0103 fie deschise dup\u0103 finalizarea proiect\u0103rii arhitecturii interne (modelul de dezvoltare al prototipului de lucru \u00eenchise aminte\u0219te de stadiul ini\u021bial de dezvoltare al LLVM, Clang \u0219i Swift). Dat fiind c\u0103 sintaxa Mojo se bazeaz\u0103 pe limbajul Python, iar sistemul de tipuri este apropiat de C\/C++, \u00een viitor se pl\u0103nuie\u0219te dezvoltarea de instrumente pentru a simplifica transferul proiectelor existente scrise \u00een C\/C++ \u0219i Python pe Mojo, precum \u0219i pentru dezvoltarea de proiecte hibride care combin\u0103 coduri \u00een Python \u0219i Mojo.        <\/p>\n<p>Proiectul este conceput pentru a atrage resursele hardware existente ale sistemului \u00een calcularea sistemelor heterogene. De exemplu, pentru a rula aplica\u021bii \u00een limbajul Mojo \u0219i a paraleliza calculele, pot fi utilizate GPU-uri, acceleratoare specializate pentru \u00eenv\u0103\u021barea automat\u0103 \u0219i instruc\u021biuni vectoriale pentru procesare (SIMD). Motivul dezvolt\u0103rii unui sub-set separat al limbajului Python, \u00een loc de a conecta pentru optimizarea CPython existent, este orientarea spre compilare, integrarea capacit\u0103\u021bilor de programare de sistem \u0219i aplicarea unei arhitecturi interioare fundamental diferite, care permite executarea codului pe GPU-uri \u0219i diverse acceleratoare hardware. \u00cen acest context, dezvoltatorii Mojo inten\u021bioneaz\u0103 s\u0103 p\u0103streze, \u00een m\u0103sura posibilit\u0103\u021bilor, compatibilitatea cu CPython.            <\/p>\n<p>Mojo poate fi utilizat at\u00e2t \u00een modul de interpretare cu JIT, c\u00e2t \u0219i pentru compilarea \u00een fi\u0219iere executabile (AOT, ahead-of-time). Compilatorul integreaz\u0103 tehnologii moderne de optimizare automat\u0103, caching \u0219i compilare distribuit\u0103. Codurile surs\u0103 \u00een limbajul Mojo sunt transformate \u00een cod intermediar de nivel sc\u0103zut MLIR (Multi-Level Intermediate Representation), dezvoltat de proiectul LLVM \u0219i care ofer\u0103 oportunit\u0103\u021bi suplimentare pentru optimizarea proces\u0103rii grafului fluxului de date. Compilatorul permite utilizarea diferitelor backend-uri care suport\u0103 MLIR pentru generarea codului ma\u0219in\u0103.        <\/p>\n<p>Implicarea mecanismelor hardware suplimentare pentru accelerarea calculelor permite atingerea unei performan\u021be, \u00een cazul calculilor intense, care dep\u0103\u0219e\u0219te aplica\u021biile scrise \u00een C\/C++. De exemplu, \u00een testarea unei aplica\u021bii pentru generarea unei mul\u021bimi de Mandelbrot, aplica\u021bia compilat\u0103 \u00een limbajul Mojo, atunci c\u00e2nd este rulat\u0103 \u00een cloud AWS (r7iz.metal-16xl), s-a dovedit a fi de 6 ori mai rapid\u0103 dec\u00e2t implementarea \u00een C++ (0.03 sec. fa\u021b\u0103 de 0.20 sec.), precum \u0219i de 35.000 de ori mai rapid\u0103 dec\u00e2t aplica\u021bia \u00een Python utiliz\u00e2nd CPython standard 3.10.9 (0.03 sec. fa\u021b\u0103 de 1027 sec.) \u0219i de 1500 de ori mai rapid\u0103 utiliz\u00e2nd PYPY (0.03 sec. fa\u021b\u0103 de 46.1 sec.).    <\/p>\n<p>\u00cen evaluarea performan\u021bei \u00een domeniul rezolv\u0103rii sarcinilor de \u00eenv\u0103\u021bare automat\u0103, AI-stack-ul Modular Inference Engine, scris \u00een limbajul Mojo, comparativ cu solu\u021bia bazat\u0103 pe biblioteca TensorFlow s-a dovedit a fi de 3 ori mai rapid pe un sistem cu procesor Intel \u00een procesarea modelului lingvistic, cu 6.4 ori mai rapid \u00een executarea modelului de generare a recomand\u0103rilor \u0219i cu 2.1 ori mai rapid \u00een lucrul cu modelele pentru procesarea informa\u021biilor vizuale. C\u00e2nd folosim procesoare AMD, c\u00e2\u0219tigul utiliz\u00e2nd Mojo a fost de 3.2, 5 \u0219i 2.2 ori, iar cu procesoare ARM \u2014 5.3, 7.5 \u0219i 1.7 ori, respectiv. Solu\u021bia bazat\u0103 pe PyTorch a fost cu 1.4, 1.1 \u0219i 1.5 ori mai lent\u0103 pe CPU Intel, cu 2.1, 1.2 \u0219i 1.5 ori pe CPU AMD \u0219i cu 4, 4.3 \u0219i 1.3 ori pe CPU ARM.      <center><img decoding=\"async\" alt=\"Creatorul LLVM dezvolt\u0103 un nou limbaj de programare Mojo\" src=\"\/wp-content\/uploads\/2023\/05\/df2598980ce4ed179ec3042d500235db.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>          <\/p>\n<p>Limbajul suport\u0103 tipizarea static\u0103 \u0219i instrumente pentru lucrul sigur la nivel de memorie, asem\u0103n\u0103toare cu facilit\u0103\u021bile limbajului Rust, cum ar fi urm\u0103rirea duratei de via\u021b\u0103 a referin\u021belor \u0219i verificarea \u00eemprumutului variabilelor (borrow checker). Pe l\u00e2ng\u0103 instrumentele pentru lucrul sigur cu pointere, limbajul ofer\u0103 \u0219i oportunit\u0103\u021bi pentru lucrul la un nivel inferior, de exemplu, acces direct la memorie \u00een modul unsafe folosind tipul Pointer, apelarea unor instruc\u021biuni SIMD separate sau accesul la extensii hardware, cum ar fi TensorCores \u0219i AMX.    <center><img decoding=\"async\" alt=\"Creatorul LLVM dezvolt\u0103 un nou limbaj de programare Mojo\" src=\"\/wp-content\/uploads\/2023\/05\/000b92c5bbb54eec64649b30a434be6d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Pentru a simplifica separarea codului Python clasic \u0219i optimizat pentru func\u021bii cu defini\u021bii explicite de tipuri pentru toate variabilele, s-a propus utilizarea unui cuv\u00e2nt cheie separat &#171;fn&#187; \u00een loc de &#171;def&#187;. Similar, pentru clase, \u00een cazul \u00een care este necesar\u0103 ambalarea static\u0103 a datelor \u00een memorie \u00een timpul compil\u0103rii (ca \u00een C), \u00een loc de &#171;class&#187;, se poate folosi tipul &#171;struct&#187;. De asemenea, este posibil un import simplu de module din limbaje C\/C++, de exemplu, pentru importul func\u021biei cos din biblioteca math, se poate specifica &#171;from &#171;math.h&#187; import cos&#187;.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=59094\">opennet.ro<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0440\u0438\u0441 \u041b\u0430\u0442\u043d\u0435\u0440 (Chris Lattner), \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 LLVM, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift, \u0438 \u0422\u0438\u043c \u0414\u044d\u0432\u0438\u0441 (Tim Davis), \u0431\u044b\u0432\u0448\u0438\u0439 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c AI-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Google, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Tensorflow \u0438 JAX, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Mojo, \u0441\u043e\u0447\u0435\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043e\u043a \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432 \u0441 \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432. \u041f\u0435\u0440\u0432\u043e\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":108414,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-108413","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0440\u0438\u0441 \u041b\u0430\u0442\u043d\u0435\u0440 (Chris Lattner), \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 LLVM, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift, \u0438 \u0422\u0438\u043c \u0414\u044d\u0432\u0438\u0441 (Tim Davis), \u0431\u044b\u0432\u0448\u0438\u0439 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c AI-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Google, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Tensorflow \u0438 JAX.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c LLVM \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Mojo | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0440\u0438\u0441 \u041b\u0430\u0442\u043d\u0435\u0440 (Chris Lattner), \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 LLVM, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift, \u0438 \u0422\u0438\u043c \u0414\u044d\u0432\u0438\u0441 (Tim Davis), \u0431\u044b\u0432\u0448\u0438\u0439 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c AI-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Google, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Tensorflow \u0438 JAX.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-05-08T10:48:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-05-08T14:10:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Creatorul LLVM dezvolt\u0103 un nou limbaj de programare Mojo | ProHoster","description":"Chris Lattner, fondatorul \u0219i arhitectul principal al LLVM, precum \u0219i creatorul limbajului de programare Swift, \u0219i Tim Davis, fost director al proiectelor AI de la Google, cum ar fi Tensorflow \u0219i JAX.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c LLVM \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Mojo | ProHoster","og:description":"\u041a\u0440\u0438\u0441 \u041b\u0430\u0442\u043d\u0435\u0440 (Chris Lattner), \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 LLVM, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift, \u0438 \u0422\u0438\u043c \u0414\u044d\u0432\u0438\u0441 (Tim Davis), \u0431\u044b\u0432\u0448\u0438\u0439 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c AI-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Google, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Tensorflow \u0438 JAX.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2023-05-08T10:48:43+00:00","article:modified_time":"2023-05-08T14:10:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/108413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=108413"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/108413\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/108414"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=108413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=108413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=108413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}