Google publiceert logische programmeertaal Logica

Google heeft een nieuwe declaratieve logische programmeertaal geïntroduceerd, Logica, ontworpen voor gegevensmanipulatie en het vertalen van programma's naar SQL. De nieuwe taal is bedoeld voor degenen die de syntaxis van logisch programmeren willen gebruiken bij het schrijven van databasequery's. Momenteel kan de resulterende SQL-code worden uitgevoerd in Google BigQuery-opslag of in PostgreSQL- en SQLite DBMS's, waarvoor de ondersteuning nog experimenteel is. In de toekomst is het de bedoeling om het aantal ondersteunde SQL-dialecten uit te breiden. De projectcode is geschreven in Python en gepubliceerd onder de Apache 2.0-licentie.

Logica zet de ontwikkeling voort van een andere door Google ontwikkelde taal voor gegevensverwerking, Yedalog, en biedt een abstractieniveau dat niet beschikbaar is in standaard SQL. Query's in Logica zijn geprogrammeerd in de vorm van een reeks logische instructies. Ondersteunt modules, importen en de mogelijkheid om Logica te gebruiken vanuit de interactieve Jupyter Notebook-shell. Om bijvoorbeeld een samenvatting te genereren van de mensen die het meest genoemd worden in het nieuws van 2020, kunt u het volgende Logica-programma gebruiken om toegang te krijgen tot de GDELT-database: @OrderBy(Mentions, “mentions desc”); @Limiet(vermeldingen, 10); Mentions(persoon:, vermeldt? += 1) onderscheidend :- gdelt-bq.gdeltv2.gkg(personen:, datum:), Substr(ToString(datum), 0, 4) == “2020”, the_persons == Splitsen (personen, ";"), persoon in de_personen; $ logische vermeldingen.l uitvoeren Vermeldingen +—————-+—————-+ | persoon | vermeldingen_telling | +—————-+—————-+ | Donald Trump | 3077130 | | Los Angeles | 1078412 | | Joe Biden | 1054827 | | George Floyd | 872919 | | boris johnson | 674786 | | Barack Obama | 438181 | | Vladimir Poetin | 410587 | | Bernie Sanders | 387383 | | Andrew Cuomo | 345462 | | Las Vegas | 325487 | +—————-+—————-+

Het schrijven van complexe query's in SQL leidt tot de noodzaak om omslachtige ketens van meerdere regels te schrijven die niet voor de hand liggend zijn om te begrijpen, waardoor het hergebruik van delen van de query wordt belemmerd en het onderhoud wordt bemoeilijkt. Voor typische repetitieve berekeningen kan SQL views en functies gebruiken, maar deze ondersteunen geen importbewerkingen en bieden niet de flexibiliteit van talen op hoog niveau (u kunt bijvoorbeeld geen functie aan een functie doorgeven). Met Logica kunt u programma's samenstellen uit kleine, begrijpelijke en herbruikbare logische blokken die kunnen worden getest, gekoppeld aan specifieke namen en gegroepeerd in pakketten die kunnen worden gebruikt als onderdeel van andere projecten.

Bron: opennet.ru

Voeg een reactie