Google publiserer logisk programmeringsspråk Logica

Google har introdusert et nytt deklarativ logisk programmeringsspråk, Logica, designet for datamanipulering og oversettelse av programmer til SQL. Det nye språket er rettet mot de som ønsker å bruke logisk programmeringssyntaks når de skriver databasespørringer. For øyeblikket kan den resulterende SQL-koden kjøres i Google BigQuery-lagring eller i PostgreSQL og SQLite DBMS-er, støtte for dette er fortsatt eksperimentell. I fremtiden er det planlagt å utvide antallet støttede SQL-dialekter. Prosjektkoden er skrevet i Python og publisert under Apache 2.0-lisensen.

Logica fortsetter utviklingen av et annet Google-utviklet databehandlingsspråk, Yedalog, og gir et abstraksjonsnivå som ikke er tilgjengelig i standard SQL. Spørringer i Logica er programmert i form av et sett med logiske utsagn. Støtter moduler, importer og muligheten til å bruke Logica fra det interaktive Jupyter Notebook-skallet. For å generere et sammendrag av personene som oftest er nevnt i nyhetene for 2020, kan du for eksempel bruke følgende Logica-program for å få tilgang til GDELT-databasen: @OrderBy(Mentions, "mentions desc"); @Limit(Nevner, 10); Omtaler(person:, nevner? += 1) distinkt :- gdelt-bq.gdeltv2.gkg(personer:, dato:), Substr(ToString(dato), 0, 4) == “2020”, the_persons == Split (personer, ";"), person i_personene; $ logica mentions.l kjøre 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 | +—————-+——————-+

Å skrive komplekse spørringer i SQL fører til behovet for å skrive tungvinte flerlinjekjeder som ikke er åpenbare å forstå, forstyrre gjenbruk av deler av spørringen og komplisere vedlikehold. For typiske repeterende beregninger kan SQL bruke visninger og funksjoner, men de støtter ikke importoperasjoner og gir ikke fleksibiliteten til høynivåspråk (du kan for eksempel ikke sende en funksjon til en funksjon). Logica lar deg komponere programmer fra små, forståelige og gjenbrukbare logiske blokker som kan testes, assosieres med spesifikke navn og grupperes i pakker som kan brukes som en del av andre prosjekter.

Kilde: opennet.ru

Legg til en kommentar