Lenguaje de programación centrado en datos


El lenguaje de programación centrado en datos define una categoría de lenguajes de programación donde la función principal es la gestión y manipulación de datos. Un lenguaje de programación centrado en datos incluye primitivas de procesamiento incorporadas para acceder a datos almacenados en conjuntos, tablas, listas y otras estructuras de datos y bases de datos, y para la manipulación y transformación específicas de datos requeridos por una aplicación de programación. Los lenguajes de programación centrados en datos suelen ser declarativos y, a menudo, orientados al flujo de datos, y definen el resultado de procesamiento deseado; los pasos de procesamiento específicos necesarios para realizar el procesamiento se dejan al compilador del lenguaje. el sqlEl lenguaje de base de datos relacional es un ejemplo de lenguaje declarativo centrado en datos. Los lenguajes de programación declarativos y centrados en datos son ideales para aplicaciones informáticas con uso intensivo de datos .

El rápido crecimiento de Internet y la World Wide Web ha dado lugar a la disponibilidad de grandes cantidades de información en línea y la necesidad de capacidades de procesamiento de Big Data . Las organizaciones comerciales y gubernamentales crean grandes cantidades de información estructurada y no estructurada que debe procesarse, analizarse y vincularse. [1] El almacenamiento, manejo, acceso y procesamiento de esta gran cantidad de datos representa una necesidad fundamental y un inmenso desafío para satisfacer las necesidades de búsqueda, análisis, extracción y visualización de estos datos como información. [2] Los lenguajes declarativos centrados en datos están abordando cada vez más estos problemas, porque centrarse en los datos hace que estos problemas sean mucho más simples de expresar. [3]

Las arquitecturas de sistemas informáticos, como Hadoop y HPCC , que pueden admitir aplicaciones paralelas de datos, son una solución potencial para los requisitos de procesamiento de datos a escala de terabytes y petabytes de la computación intensiva en datos . [4] [5] Los grupos de hardware de productos básicos se utilizan comúnmente para abordar los problemas de Big Data. [6] Los desafíos fundamentales para las aplicaciones Big Data y la computación intensiva en datos [7]están gestionando y procesando volúmenes de datos que crecen exponencialmente, reduciendo significativamente los ciclos de análisis de datos asociados para respaldar aplicaciones prácticas y oportunas, y desarrollando nuevos algoritmos que pueden escalar para buscar y procesar cantidades masivas de datos. La Fundación Nacional de Ciencias ha identificado cuestiones clave relacionadas con los problemas informáticos intensivos en datos, como las abstracciones de programación que incluyen modelos, lenguajes y algoritmos que permiten una expresión natural del procesamiento paralelo de datos. [8] Los lenguajes de programación declarativos y centrados en datos se adaptan bien a esta clase de problemas.

Los lenguajes de programación centrados en datos brindan un enfoque de procesamiento en el que las aplicaciones se expresan en términos de operaciones de alto nivel en los datos, y el sistema de tiempo de ejecución controla de manera transparente la programación, la ejecución, el equilibrio de carga, las comunicaciones y el movimiento de programas y datos en el clúster informático. . [9] Las herramientas de lenguaje y abstracción de programación permiten que el procesamiento se exprese en términos de flujos de datos y transformaciones que incorporan bibliotecas compartidas de algoritmos comunes de manipulación de datos, como la clasificación.

Los lenguajes de programación centrados en datos declarativos son intrínsecamente adaptables a varias formas de computación distribuida, incluidos clústeres y redes de datos y computación en la nube. [10] El uso de lenguajes de programación declarativos y centrados en datos sugiere más que solo adaptarse a una nueva capacidad informática, también sugiere cambios en el proceso de pensamiento del análisis de datos y el diseño de aplicaciones. [11]


Figura 1: Muestra del programa Pig Latin [13]
Figura 2: traducción del programa Pig a MapReduce [13]
Figura 3: Sintaxis de ejemplo de ECL para la operación JOIN
Figura 5: Ejemplo de código ECL para NLP
Figura 4: ejemplo de código ECL