Google avaldab loogilise programmeerimiskeele Logica

Google on kasutusele võtnud uue deklaratiivse loogika programmeerimiskeele Logica, mis on mõeldud andmete töötlemiseks ja programmide tõlkimiseks SQL-i. Uus keel on suunatud neile, kes soovivad andmebaasipäringute kirjutamisel kasutada loogilise programmeerimise süntaksit. Praegu saab saadud SQL-koodi käivitada Google BigQuery salvestusruumis või PostgreSQL-i ja SQLite DBMS-ides, mille tugi on veel eksperimentaalne. Tulevikus on plaanis toetatud SQL-i dialektide arvu laiendada. Projekti kood on kirjutatud Pythonis ja avaldatud Apache 2.0 litsentsi all.

Logica jätkab teise Google'i väljatöötatud andmetöötluskeele Yedalog arendamist ja pakub abstraktsioonitaset, mis pole standardses SQL-is saadaval. Logica päringud programmeeritakse loogiliste lausete komplektina. Toetab mooduleid, importi ja võimalust kasutada Logicat interaktiivsest Jupyteri sülearvuti kestast. Näiteks 2020. aasta uudistes kõige sagedamini mainitud inimeste kokkuvõtte koostamiseks saate GDELT-i andmebaasi pääsemiseks kasutada järgmist Logica programmi: @OrderBy(Mentions, "mentions desc"); @Limit(Mentions, 10); Mainimised (isik:, mainib? += 1) erinevad :- gdelt-bq.gdeltv2.gkg(isikud:, kuupäev:), Substr(ToString(kuupäev), 0, 4) == “2020”, the_persons == Split (isikud, ";"), isik isikutes; $ logica mainib.l jooksma Mainib +—————-+—————-+ | inimene | mainimiste_arv | +—————-+—————-+ | 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 | +—————-+—————-+

Keeruliste päringute kirjutamine SQL-is toob kaasa vajaduse kirjutada tülikaid mitmerealisi ahelaid, millest pole ilmselge aru saada, mis segavad päringu osade taaskasutamist ja muudavad hoolduse keerulisemaks. Tüüpiliste korduvate arvutuste jaoks võib SQL kasutada vaateid ja funktsioone, kuid need ei toeta importimistoiminguid ega paku kõrgetasemeliste keelte paindlikkust (näiteks ei saa funktsiooni funktsioonile edasi anda). Logica võimaldab koostada programme väikestest, arusaadavatest ja korduvkasutatavatest loogikaplokkidest, mida saab testida, seostada kindlate nimedega ja rühmitada pakettideks, mida saab kasutada teiste projektide osana.

Allikas: opennet.ru

Lisa kommentaar