{"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\/pt\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","title":{"rendered":"O criador do LLVM est\u00e1 desenvolvendo uma nova linguagem de programa\u00e7\u00e3o chamada Mojo","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Chris Lattner, fundador e arquiteto principal do LLVM, bem como criador da linguagem de programa\u00e7\u00e3o Swift, e Tim Davis, ex-l\u00edder de projetos de IA do Google, como Tensorflow e JAX, apresentaram uma nova linguagem de programa\u00e7\u00e3o chamada Mojo, que combina a simplicidade para desenvolvimento de pesquisas e a cria\u00e7\u00e3o r\u00e1pida de prot\u00f3tipos com a adequa\u00e7\u00e3o para a forma\u00e7\u00e3o de produtos finais de alto desempenho. Isso \u00e9 alcan\u00e7ado gra\u00e7as ao uso da sintaxe familiar da linguagem Python e \u00e0 capacidade de compila\u00e7\u00e3o em c\u00f3digo de m\u00e1quina, mecanismos de seguran\u00e7a de mem\u00f3ria e a utiliza\u00e7\u00e3o de recursos para acelera\u00e7\u00e3o de hardware nas computa\u00e7\u00f5es.    <\/p>\n<p>O projeto \u00e9 focado no uso para desenvolvimentos na \u00e1rea de aprendizado de m\u00e1quina, mas \u00e9 apresentado como uma linguagem de prop\u00f3sito geral, ampliando as capacidades da linguagem Python com recursos de programa\u00e7\u00e3o de sistemas e adequada para uma ampla gama de tarefas. Por exemplo, a linguagem \u00e9 aplic\u00e1vel em \u00e1reas como computa\u00e7\u00e3o de alto desempenho, processamento e transforma\u00e7\u00e3o de dados. Uma caracter\u00edstica interessante do Mojo \u00e9 a possibilidade de indicar um s\u00edmbolo emoji &#171;&#128293;&#187; como extens\u00e3o para arquivos de c\u00f3digo (por exemplo, &#171;helloworld.&#128293;&#187;), al\u00e9m da extens\u00e3o de texto &#171;.mojo&#187;.       <\/p>\n<p>Atualmente, a linguagem est\u00e1 em fase de desenvolvimento intenso e, para testes, apenas uma interface online foi disponibilizada. Vers\u00f5es isoladas para execu\u00e7\u00e3o em sistemas locais est\u00e3o prometidas para publica\u00e7\u00e3o posteriormente, ap\u00f3s a coleta de feedback sobre o funcionamento do ambiente web interativo. Os c\u00f3digos fontes do compilador, JIT e outras desenvolvimentos relacionados ao projeto est\u00e3o planejados para serem abertos ap\u00f3s a conclus\u00e3o do design da arquitetura interna (o modelo de desenvolvimento de um prot\u00f3tipo funcional por tr\u00e1s de portas fechadas lembra a fase inicial de desenvolvimento do LLVM, Clang e Swift). Como a sintaxe do Mojo \u00e9 baseada na linguagem Python, e o sistema de tipos \u00e9 semelhante ao C\/C++, no futuro, planejam desenvolver ferramentas para simplificar a transi\u00e7\u00e3o de projetos existentes escritos em C\/C++ e Python para Mojo, al\u00e9m de desenvolver projetos h\u00edbridos que combinam c\u00f3digos em Python e Mojo.        <\/p>\n<p>O projeto \u00e9 voltado para a utiliza\u00e7\u00e3o de recursos de hardware dispon\u00edveis em sistemas heterog\u00eaneos para a realiza\u00e7\u00e3o de c\u00e1lculos. Por exemplo, para executar aplica\u00e7\u00f5es na linguagem Mojo e paralelizar c\u00e1lculos, podem ser utilizados GPUs, aceleradores especializados para aprendizado de m\u00e1quina e instru\u00e7\u00f5es de processador vetorial (SIMD). A escolha de desenvolver um subconjunto separado da linguagem Python, em vez de otimizar o CPython existente, \u00e9 motivada pela \u00eanfase na compila\u00e7\u00e3o, integra\u00e7\u00e3o de recursos de programa\u00e7\u00e3o de sistemas e uso de uma arquitetura interna fundamentalmente diferente, que permite a execu\u00e7\u00e3o de c\u00f3digo em GPUs e diversos aceleradores de hardware. Os desenvolvedores de Mojo pretendem manter a compatibilidade com o CPython sempre que poss\u00edvel.            <\/p>\n<p>O Mojo pode ser utilizado tanto em modo de interpreta\u00e7\u00e3o com JIT quanto para compila\u00e7\u00e3o em arquivos execut\u00e1veis (AOT, ahead-of-time). O compilador incorpora tecnologias modernas de otimiza\u00e7\u00e3o autom\u00e1tica, cache e compila\u00e7\u00e3o distribu\u00edda. O c\u00f3digo-fonte em Mojo \u00e9 transformado em c\u00f3digo intermedi\u00e1rio de baixo n\u00edvel MLIR (Multi-Level Intermediate Representation), desenvolvido pelo projeto LLVM, que oferece oportunidades adicionais para otimiza\u00e7\u00e3o do processamento do gr\u00e1fico do fluxo de dados. O compilador permite a aplica\u00e7\u00e3o de diferentes backends, que suportam MLIR, para a gera\u00e7\u00e3o de c\u00f3digo de m\u00e1quina.        <\/p>\n<p>A utiliza\u00e7\u00e3o de mecanismos de hardware adicionais para acelerar c\u00e1lculos possibilita o alcance de desempenho que, em c\u00e1lculos intensivos, supera aplica\u00e7\u00f5es em C\/C++. Por exemplo, em testes de um aplicativo para gerar um conjunto de Mandelbrot, o aplicativo compilado em Mojo, quando executado na nuvem AWS (r7iz.metal-16xl), foi 6 vezes mais r\u00e1pido do que a implementa\u00e7\u00e3o em C++ (0,03 s contra 0,20 s), al\u00e9m de ser 35 mil vezes mais r\u00e1pido do que o aplicativo em Python usando o CPython 3.10.9 (0,03 s contra 1027 s) e 1500 vezes mais r\u00e1pido ao usar o PYPY (0,03 s contra 46,1 s).    <\/p>\n<p>Ao avaliar o desempenho no contexto de resolver tarefas de aprendizado de m\u00e1quina, o stack de IA Modular Inference Engine, escrito na linguagem Mojo, em compara\u00e7\u00e3o com uma solu\u00e7\u00e3o baseada na biblioteca TensorFlow, mostrou ser 3 vezes mais r\u00e1pido em um sistema com processador Intel ao processar um modelo de linguagem, 6,4 vezes mais r\u00e1pido na execu\u00e7\u00e3o de um modelo de recomenda\u00e7\u00e3o e 2,1 vezes mais r\u00e1pido ao trabalhar com modelos de processamento visual. Usando processadores AMD, o ganho com o uso do Mojo foi de 3,2, 5 e 2,2 vezes, e ao utilizar processadores ARM \u2014 5,3, 7,5 e 1,7 vezes, respectivamente. A solu\u00e7\u00e3o baseada em PyTorch ficou atr\u00e1s do Mojo em uma raz\u00e3o de 1,4, 1,1 e 1,5 vezes em CPU Intel, 2,1, 1,2 e 1,5 vezes em CPU AMD e 4, 4,3 e 1,3 vezes em CPU ARM.      <center><img decoding=\"async\" alt=\"O criador do LLVM est\u00e1 desenvolvendo uma nova linguagem de programa\u00e7\u00e3o chamada Mojo\" src=\"\/wp-content\/uploads\/2023\/05\/df2598980ce4ed179ec3042d500235db.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>          <\/p>\n<p>A linguagem suporta tipagem est\u00e1tica e recursos para manipula\u00e7\u00e3o segura de mem\u00f3ria em n\u00edvel baixo, semelhantes \u00e0s capacidades da linguagem Rust, como o rastreamento do tempo de vida de refer\u00eancias e a verifica\u00e7\u00e3o de empr\u00e9stimo de vari\u00e1veis (borrow checker). Al\u00e9m dos recursos para manipula\u00e7\u00e3o segura de ponteiros, a linguagem oferece funcionalidades para trabalho em n\u00edvel baixo, como acesso direto \u00e0 mem\u00f3ria em modo unsafe usando o tipo Pointer, chamada de instru\u00e7\u00f5es SIMD individuais ou acesso a extens\u00f5es de hardware, como TensorCores e AMX.    <center><img decoding=\"async\" alt=\"O criador do LLVM est\u00e1 desenvolvendo uma nova linguagem de programa\u00e7\u00e3o chamada Mojo\" src=\"\/wp-content\/uploads\/2023\/05\/000b92c5bbb54eec64649b30a434be6d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Para simplificar a separa\u00e7\u00e3o do c\u00f3digo Python cl\u00e1ssico e otimizado para fun\u00e7\u00f5es com defini\u00e7\u00e3o expl\u00edcita de tipos para todas as vari\u00e1veis, prop\u00f5e-se o uso de uma palavra-chave separada &#171;fn&#187; ao inv\u00e9s de &#171;def&#187;. Da mesma forma, para classes, quando necess\u00e1rio empacotar dados estaticamente na mem\u00f3ria durante a compila\u00e7\u00e3o (como em C), ao inv\u00e9s de &#171;class&#187;, pode-se usar o tipo &#171;struct&#187;. Tamb\u00e9m \u00e9 poss\u00edvel realizar uma importa\u00e7\u00e3o simples de m\u00f3dulos nas linguagens C\/C++, por exemplo, para importar a fun\u00e7\u00e3o cos da biblioteca math, pode-se indicar &#171;from &#171;math.h&#187; import cos&#187;.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=59094\">opennet.ru<\/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.3 - 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\/pt\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47O criador do LLVM est\u00e1 desenvolvendo uma nova linguagem de programa\u00e7\u00e3o Mojo | ProHoster","description":"Chris Lattner, fundador e arquiteto principal do LLVM, al\u00e9m de criador da linguagem de programa\u00e7\u00e3o Swift, e Tim Davis, ex-l\u00edder de projetos de IA do Google, como TensorFlow e JAX.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/108413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=108413"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/108413\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/108414"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=108413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=108413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=108413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}