{"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\/nl\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","title":{"rendered":"De maker van LLVM ontwikkelt een nieuwe programmeertaal Mojo","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Chris Lattner, oprichter en hoofdarchitect van LLVM, en bedenker van de programmeertaal Swift, samen met Tim Davis, voormalig hoofd van AI-projecten bij Google, waaronder Tensorflow en JAX, hebben een nieuwe programmeertaal genaamd Mojo gepresenteerd. Deze taal combineert gebruiksgemak voor onderzoeksontwikkeling en snelle prototypering met de geschiktheid voor het maken van hoogpresterende eindproducten. Dit wordt bereikt door het gebruik van de vertrouwde syntaxis van de programmeertaal Python, en de mogelijkheid om te compilen naar machinecode, veilig omgaan met geheugen en het inschakelen van hardwareversnelling voor berekeningen.    <\/p>\n<p>Het project richt zich op het gebruik voor ontwikkelingen op het gebied van machine learning, maar wordt gepresenteerd als een algemene programmeertaal die de mogelijkheden van Python uitbreidt met systeemprogrammeringsmiddelen en geschikt is voor een breed scala aan taken. De taal is bijvoorbeeld toepasbaar in gebieden zoals high-performance computing, gegevensverwerking en -transformatie. Een interessante functie van Mojo is de mogelijkheid om een emoji-symbool &#171;&#128293;&#187; als bestandsextensie voor codebestanden te gebruiken (bijvoorbeeld &#171;helloworld.&#128293;&#187;), naast de tekstuele extensie &#171;.mojo&#187;.       <\/p>\n<p>De taal bevindt zich momenteel in een intensieve ontwikkelingsfase en er is alleen een online interface beschikbaar voor testen. Aparte builds voor lokale systemen zullen later worden gepubliceerd, na ontvangst van feedback over de werking van de interactieve webomgeving. De broncodes van de compiler, JIT en andere eraan gerelateerde projecten zullen na de voltooiing van het ontwerp van de interne architectuur worden vrijgegeven (het ontwikkelingsmodel voor de werkende prototype achter gesloten deuren lijkt op de vroege fase van de ontwikkeling van LLVM, Clang en Swift). Aangezien de syntaxis van Mojo is gebaseerd op Python en het typensysteem lijkt op C\/C++, zijn er plannen om in de toekomst tools te ontwikkelen die de vertaling van bestaande projecten in C\/C++ en Python naar Mojo vereenvoudigen, evenals voor de ontwikkeling van hybride projecten die code in Python en Mojo combineren.        <\/p>\n<p>Het project is gericht op het benutten van de bestaande hardwarebronnen van heterogene systemen voor het uitvoeren van berekeningen. Bijvoorbeeld, voor het uitvoeren van applicaties in de Mojo-taal en het paralleliseren van berekeningen kunnen GPU's, gespecialiseerde versnellingsunits voor machine learning en vectorprocessor-instructies (SIMD) worden ingezet. De reden voor het ontwikkelen van een aparte subset van de Python-taal in plaats van het optimaliseren van de bestaande CPython heeft te maken met de focus op compilatie, de integratie van systeemprogrammeringsmogelijkheden en het toepassen van een fundamenteel andere interne architectuur die het mogelijk maakt om code op GPU's en verschillende hardwareversnellers uit te voeren. De ontwikkelaars van Mojo zijn van plan om, waar mogelijk, compatibiliteit met CPython na te streven.            <\/p>\n<p>Mojo kan zowel in interpretatiemode met JIT als voor compilatie naar uitvoerbare bestanden (AOT, ahead-of-time) worden gebruikt. De compiler bevat moderne technologie\u00ebn voor automatische optimalisatie, caching en gedistribueerde compilatie. Bronbestanden in de Mojo-taal worden omgezet in laag-niveau tussenliggende code MLIR (Multi-Level Intermediate Representation), ontwikkeld door het LLVM-project, wat extra mogelijkheden biedt voor het optimaliseren van de verwerking van datastromen. De compiler maakt het mogelijk om verschillende backends te gebruiken voor de generatie van machinecode die MLIR ondersteunen.        <\/p>\n<p>Het inzetten van extra hardwaremechanismen voor het versnellen van berekeningen maakt het mogelijk om prestaties te bereiken die bij intensieve berekeningen superieur zijn aan applicaties in C\/C++. Bijvoorbeeld, bij het testen van een applicatie voor het genereren van Mandelbrot-verzamelingen bleek de gecompileerde applicatie in de Mojo-taal, uitgevoerd in de AWS-cloud (r7iz.metal-16xl), 6 keer sneller te zijn dan de implementatie in C++ (0,03 sec. versus 0,20 sec.), en 35.000 keer sneller dan de applicatie in Python met de standaard CPython 3.10.9 (0,03 sec. versus 1027 sec.) en 1500 keer sneller dan de applicatie met PYPY (0,03 sec. versus 46,1 sec.).    <\/p>\n<p>Bij het beoordelen van de prestaties op het gebied van machine learning, bleek de AI-stack Modular Inference Engine, geschreven in Mojo, vergeleken met een oplossing op basis van de TensorFlow-bibliotheek, op een Intel-processor drie keer sneller bij de verwerking van een taalmodel, 6,4 keer sneller bij het uitvoeren van een aanbevelingsmodel en 2,1 keer sneller bij het werken met modellen voor visuele informatie. Bij het gebruik van AMD-processors was de winst met Mojo respectievelijk 3,2, 5 en 2,2 keer, en bij gebruik van ARM-processors - 5,3, 7,5 en 1,7 keer. De op PyTorch gebaseerde oplossing bleef achter bij Mojo met 1,4, 1,1 en 1,5 keer op Intel CPU's, 2,1, 1,2 en 1,5 keer op AMD CPU's en 4, 4,3 en 1,3 keer op ARM CPU's.      <center><img decoding=\"async\" alt=\"De maker van LLVM ontwikkelt een nieuwe programmeertaal Mojo\" src=\"\/wp-content\/uploads\/2023\/05\/df2598980ce4ed179ec3042d500235db.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>          <\/p>\n<p>De taal ondersteunt statische typering en middelen voor veilig low-level geheugenbeheer, vergelijkbaar met de mogelijkheden van de taal Rust, zoals het volgen van de levensduur van verwijzingen en het controleren van het lenen van variabelen (borrow checker). Naast de middelen voor veilig werken met pointers zijn er ook mogelijkheden voor low-level werk, bijvoorbeeld directe toegang tot geheugen in unsafe modus met behulp van het type Pointer, het aanroepen van afzonderlijke SIMD-instructies of toegang tot hardware-uitbreidingen zoals TensorCores en AMX.    <center><img decoding=\"async\" alt=\"De maker van LLVM ontwikkelt een nieuwe programmeertaal Mojo\" src=\"\/wp-content\/uploads\/2023\/05\/000b92c5bbb54eec64649b30a434be6d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Om de scheiding tussen klassieke en geoptimaliseerde Python-code voor functies met expliciete type-definities voor alle variabelen te vereenvoudigen, is voorgesteld om een apart sleutelwoord &#171;fn&#187; te gebruiken in plaats van &#171;def&#187;. Evenzo kan voor klassen, indien nodig bij statische gegevensverpakking in het geheugen tijdens compilatie (zoals in C), de type &#171;struct&#187; in plaats van &#171;class&#187; worden gebruikt. Eenvoudige import van modules in C\/C++-talen is ook mogelijk, bijvoorbeeld, om de functie cos uit de wiskundige bibliotheek te importeren kan aangegeven worden &#171;from &#171;math.h&#187; import cos&#187;.<br \/>\n<br \/>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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\udd47De maker van LLVM ontwikkelt een nieuwe programmeertaal Mojo | ProHoster","description":"Chris Lattner, de oprichter en hoofdarchitect van LLVM, en de maker van de programmeertaal Swift, en Tim Davis, voormalig hoofd van AI-projecten bij Google, zoals TensorFlow en JAX.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/108413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=108413"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/108413\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/108414"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=108413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=108413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=108413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}