Google udgiver logisk programmeringssprog Logica

Google har introduceret et nyt deklarativ logisk programmeringssprog, Logica, designet til datamanipulation og oversættelse af programmer til SQL. Det nye sprog er rettet mod dem, der ønsker at bruge logisk programmeringssyntaks, når de skriver databaseforespørgsler. I øjeblikket kan den resulterende SQL-kode udføres i Google BigQuery-lagring eller i PostgreSQL- og SQLite-DBMS'er, hvilket stadig er eksperimentel. I fremtiden er det planlagt at udvide antallet af understøttede SQL-dialekter. Projektkoden er skrevet i Python og udgivet under Apache 2.0-licensen.

Logica fortsætter udviklingen af ​​et andet Google-udviklet databehandlingssprog, Yedalog, og giver et abstraktionsniveau, der ikke er tilgængeligt i standard SQL. Forespørgsler i Logica programmeres i form af et sæt logiske udsagn. Understøtter moduler, importer og muligheden for at bruge Logica fra den interaktive Jupyter Notebook-skal. For eksempel, for at generere en oversigt over de personer, der oftest er nævnt i nyhederne for 2020, kan du bruge følgende Logica-program til at få adgang til GDEL-databasen: @OrderBy(Mentions, "mentions desc"); @Grænse(omtaler, 10); Mentions(person:, omtaler? += 1) distinct :- gdelt-bq.gdeltv2.gkg(persons:, date:), Substr(ToString(date), 0, 4) == “2020”, the_persons == Split (persons, ";"), person in the_persons; $ logica mentions.l kø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 | +—————-+——————-+

At skrive komplekse forespørgsler i SQL fører til behovet for at skrive besværlige multi-line kæder, som ikke er indlysende at forstå, forstyrre genbrugen af ​​dele af forespørgslen og komplicere vedligeholdelsen. Til typiske gentagne beregninger kan SQL bruge visninger og funktioner, men de understøtter ikke importoperationer og giver ikke fleksibiliteten til sprog på højt niveau (f.eks. kan du ikke videregive en funktion til en funktion). Logica giver dig mulighed for at komponere programmer fra små, forståelige og genbrugelige logiske blokke, der kan testes, associeres med specifikke navne og grupperes i pakker, der kan bruges som en del af andre projekter.

Kilde: opennet.ru

Tilføj en kommentar