Google publicerar logiskt programmeringsspråk Logica

Google har introducerat ett nytt programmeringsspråk för deklarativ logik, Logica, designat för datamanipulation och översättning av program till SQL. Det nya språket riktar sig till dig som vill använda logisk programmeringssyntax när du skriver databasfrågor. För närvarande kan den resulterande SQL-koden köras i Google BigQuery-lagring eller i PostgreSQL och SQLite DBMS, vilket fortfarande är experimentellt stöd. I framtiden är det planerat att utöka antalet SQL-dialekter som stöds. Projektkoden är skriven i Python och publicerad under Apache 2.0-licensen.

Logica fortsätter utvecklingen av ett annat Google-utvecklat databehandlingsspråk, Yedalog, och tillhandahåller en abstraktionsnivå som inte är tillgänglig i standard SQL. Frågor i Logica programmeras i form av en uppsättning logiska satser. Stöder moduler, importer och möjligheten att använda Logica från det interaktiva Jupyter Notebook-skalet. Till exempel, för att generera en sammanfattning av de personer som oftast nämns i nyheterna för 2020, kan du använda följande Logica-program för att komma åt GDELT-databasen: @OrderBy(Mentions, “mentions desc”); @Limit(Omnämnanden, 10); Mentions(person:, mentions? += 1) distinct :- gdelt-bq.gdeltv2.gkg(persons:, date:), Substr(ToString(date), 0, 4) == “2020”, the_persons == Split (personer, ";"), person i_persons; $ logica mentions.l kör Mentions +—————-+—————-+ | person | mentions_count | +—————-+—————-+ | Donald Trump | 3077130 | | los angeles | 1078412 | | joe biden | 1054827 | | george floyd | 872919 | | boris johnson | 674786 | | Barack Obama | 438181 | | Vladimir Putin | 410587 | | bernie sanders | 387383 | | andrew cuomo | 345462 | | las vegas | 325487 | +—————-+——————-+

Att skriva komplexa frågor i SQL leder till att man behöver skriva besvärliga flerradskedjor som inte är uppenbara att förstå, stör återanvändningen av delar av frågan och komplicerar underhållet. För typiska repetitiva beräkningar kan SQL använda vyer och funktioner, men de stöder inte importoperationer och ger inte flexibiliteten hos högnivåspråk (du kan till exempel inte skicka en funktion till en funktion). Logica låter dig komponera program från små, begripliga och återanvändbara logiska block som kan testas, associeras med specifika namn och grupperas i paket som kan användas som en del av andra projekt.

Källa: opennet.ru

Lägg en kommentar