Google objavljuje logički programski jezik Logica

Google je predstavio novi deklarativni logički programski jezik, Logica, dizajniran za manipulaciju podacima i prevođenje programa u SQL. Novi jezik namijenjen je onima koji žele koristiti sintaksu logičkog programiranja pri pisanju upita bazi podataka. Trenutačno se rezultirajući SQL kod može izvršiti u Google BigQuery pohrani ili u PostgreSQL i SQLite DBMS-ovima, čija je podrška još uvijek eksperimentalna. U budućnosti se planira proširiti broj podržanih SQL dijalekata. Kôd projekta napisan je u Pythonu i objavljen pod licencom Apache 2.0.

Logica nastavlja razvoj još jednog jezika za obradu podataka koji je razvio Google, Yedalog, i pruža razinu apstrakcije koja nije dostupna u standardnom SQL-u. Upiti u Logici programirani su u obliku skupa logičkih izjava. Podržava module, uvoze i mogućnost korištenja Logice iz interaktivne ljuske Jupyter Notebook. Na primjer, da biste generirali sažetak osoba koje se najčešće spominju u vijestima za 2020., možete koristiti sljedeći program Logica za pristup GDELT bazi podataka: @OrderBy(Mentions, “mentions desc”); @Limit(Spominjanja, 10); Mentions(person:, mentions? += 1) distinct :- gdelt-bq.gdeltv2.gkg(persons:, date:), Substr(ToString(date), 0, 4) == “2020”, the_persons == Split (osobe, ";"), osoba u_osobama; $ logica spominje.l pokreni spominje +—————-+—————-+ | osoba | broj_spominjanja | +—————-+—————-+ | 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 | +—————-+——————-+

Pisanje složenih upita u SQL-u dovodi do potrebe za pisanjem glomaznih lanaca s više redaka koji nisu očigledni za razumijevanje, ometaju ponovnu upotrebu dijelova upita i kompliciraju održavanje. Za tipične ponavljajuće izračune, SQL može koristiti prikaze i funkcije, ali oni ne podržavaju operacije uvoza i ne pružaju fleksibilnost jezika visoke razine (na primjer, ne možete proslijediti funkciju funkciji). Logica vam omogućuje sastavljanje programa od malih, razumljivih i višekratno upotrebljivih logičkih blokova koji se mogu testirati, povezati s određenim imenima i grupirati u pakete koji se mogu koristiti kao dio drugih projekata.

Izvor: opennet.ru

Dodajte komentar