Google vydává logický programovací jazyk Logica

Google představil nový programovací jazyk deklarativní logiky, Logica, určený pro manipulaci s daty a překlad programů do SQL. Nový jazyk je zaměřen na ty, kteří chtějí používat syntaxi logického programování při psaní databázových dotazů. V současné době lze výsledný kód SQL spustit v úložišti Google BigQuery nebo v PostgreSQL a SQLite DBMS, jejichž podpora je stále experimentální. Do budoucna se plánuje rozšíření počtu podporovaných SQL dialektů. Kód projektu je napsán v Pythonu a publikován pod licencí Apache 2.0.

Logica pokračuje ve vývoji dalšího jazyka pro zpracování dat, vyvinutého společností Google, Yedalog, a poskytuje úroveň abstrakce, která není dostupná ve standardním SQL. Dotazy v Logice jsou naprogramovány ve formě sady logických příkazů. Podporuje moduly, importy a možnost používat Logica z interaktivního prostředí Jupyter Notebook. Chcete-li například vygenerovat souhrn osob nejčastěji zmiňovaných ve zprávách pro rok 2020, můžete pro přístup k databázi GDELT použít následující program Logica: @OrderBy(Mentions, “menions desc”); @Limit(Zmínky, 10); Zmínky(osoba:, zmínky? += 1) odlišné :- gdelt-bq.gdeltv2.gkg(osoby:, datum:), Substr(ToString(datum), 0, 4) == “2020”, the_persons == Rozdělit (osoby, ";"), osoba v_osobách; $ logica spomínas.l spustit Mentions +—————-+—————-+ | osoba | zmiňuje_počet | +—————-+—————-+ | donald Trump | 3077130 | | los angeles | 1078412 | | joe biden | 1054827 | | George Floyd | 872919 | | boris johnson | 674786 | | Barack Obama | 438181 | | vladimír putin | 410587 | | bernie sanders | 387383 | | andrew cuomo | 345462 | | las vegas | 325487 | +—————-+——————-+

Psaní složitých dotazů v SQL vede k potřebě psát těžkopádné víceřádkové řetězce, kterým není zřejmé pochopení, narušují opakované použití částí dotazu a komplikují údržbu. Pro typické opakované výpočty může SQL používat pohledy a funkce, ale nepodporují operace importu a neposkytují flexibilitu jazyků na vysoké úrovni (například nemůžete předat funkci funkci). Logica vám umožňuje skládat programy z malých, srozumitelných a opakovaně použitelných logických bloků, které lze testovat, spojovat s konkrétními názvy a seskupovat do balíčků, které lze použít jako součást jiných projektů.

Zdroj: opennet.ru

Přidat komentář