1000 resultados para SQL (Lenguaje de programación)
Resumo:
Máster Universitario del Profesorado de Educación Secundaria
Resumo:
Los lenguajes de programación son el idioma que los programadores usamos para comunicar a los computadores qué queremos que hagan. Desde el lenguaje ensamblador, que traduce una a una las instrucciones que interpreta un computador hasta lenguajes de alto nivel, se ha buscado desarrollar lenguajes más cercanos a la forma de pensar y expresarse de los humanos. Los lenguajes de programación lógicos como Prolog utilizan a su vez el lenguaje de la lógica de 1er orden de modo que el programador puede expresar las premisas del problema que se quiere resolver sin preocuparse del cómo se va a resolver dicho problema. La resolución del problema se equipara a encontrar una deducción del objetivo a alcanzar a partir de las premisas y equivale a lo que entendemos por la ejecución de un programa. Ciao es una implementación de Prolog (http://www.ciao-lang.org) y utiliza el método de resolución SLD, que realiza el recorrido de los árboles de decisión en profundidad(depth-first) lo que puede derivar en la ejecución de una rama de busqueda infinita (en un bucle infinito) sin llegar a dar respuestas. Ciao, al ser un sistema modular, permite la utilización de extensiones para implementar estrategias de resolución alternativas como la tabulación (OLDT). La tabulación es un método alternativo que se basa en memorizar las llamadas realizadas y sus respuestas para no repetir llamadas y poder usar las respuestas sin recomputar las llamadas. Algunos programas que con SLD entran en un bucle infinito, gracias a la tabulación dán todas las respuestas y termina. El modulo tabling es una implementación de tabulación mediante el algoritmo CHAT. Esta implementación es una versión beta que no tiene implementado un manejador de memoria. Entendemos que la gestión de memoria en el módulo de tabling tiene gran importancia, dado que la resolución con tabulación permite reducir el tiempo de computación (al no repetir llamadas), aumentando los requerimientos de memoria (para guardar las llamadas y las respuestas). Por lo tanto, el objetivo de este trabajo es implementar un mecanismo de gestión de la memoria en Ciao con el módulo tabling cargado. Para ello se ha realizado la implementación de: Un mecanismo de captura de errores que: detecta cuando el computador se queda sin memoria y activa la reinicialización del sitema. Un procedimiento que ajusta los punteros del modulo de tabling que apuntan a la WAM tras un proceso de realojo de algunas de las áreas de memoria de la WAM. Un gestor de memoria del modulo de tabling que detecta c realizar una ampliación de las áreas de memoria del modulo de tabling, realiza la solicitud de más memoria y realiza el ajuste de los punteros. Para ayudar al lector no familiarizado con este tema, describimos los datos que Ciao y el módulo de tabling alojan en las áreas de memoria dinámicas que queremos gestionar. Los casos de pruebas desarrollados para evaluar la implementación del gestor de memoria, ponen de manifiesto que: Disponer de un gestor de memoria dinámica permite la ejecución de programas en un mayor número de casos. La política de gestión de memoria incide en la velocidad de ejecución de los programas. ---ABSTRACT---Programming languages are the language that programmers use in order to communicate to computers what we want them to do. Starting from the assembly language, which translates one by one the instructions to the computer, and arriving to highly complex languages, programmers have tried to develop programming languages that resemble more closely the way of thinking and communicating of human beings. Logical programming languages, such as Prolog, use the language of logic of the first order so that programmers can express the premise of the problem that they want to solve without having to solve the problem itself. The solution to the problem is equal to finding a deduction of the objective to reach starting from the premises and corresponds to what is usually meant as the execution of a program. Ciao is an implementation of Prolog (http://www.ciao-lang.org) and uses the method of resolution SLD that carries out the path of the decision trees in depth (depth-frist). This can cause the execution of an infinite searching branch (an infinite loop) without getting to an answer. Since Ciao is a modular system, it allows the use of extensions to implement alternative resolution strategies, such as tabulation (OLDT). Tabulation is an alternative method that is based on the memorization of executions and their answers, in order to avoid the repetition of executions and to be able to use the answers without reexecutions. Some programs that get into an infinite loop with SLD are able to give all the answers and to finish thanks to tabulation. The tabling package is an implementation of tabulation through the algorithm CHAT. This implementation is a beta version which does not present a memory handler. The management of memory in the tabling package is highly important, since the solution with tabulation allows to reduce the system time (because it does not repeat executions) and increases the memory requirements (in order to save executions and answers). Therefore, the objective of this work is to implement a memory management mechanism in Ciao with the tabling package loaded. To achieve this goal, the following implementation were made: An error detection system that reveals when the computer is left without memory and activate the reinizialitation of the system. A procedure that adjusts the pointers of the tabling package which points to the WAM after a process of realloc of some of the WAM memory stacks. A memory manager of the tabling package that detects when it is necessary to expand the memory stacks of the tabling package, requests more memory, and adjusts the pointers. In order to help the readers who are not familiar with this topic, we described the data which Ciao and the tabling package host in the dynamic memory stacks that we want to manage. The test cases developed to evaluate the implementation of the memory manager show that: A manager for the dynamic memory allows the execution of programs in a larger number of cases. Memory management policy influences the program execution speed.
Resumo:
Estas notas que se publican a continuación corresponden a un curso de postgrado impartido durante el primer semestre del año 1983. El interés mostrado por los asistentes a dicho curso nos ha animado a escribir un resumen de las clases. Este libro supone un conocimiento te6rico de las ideas básicas del método de los elementos finitos. No obstante en una primera lección se resumen y ordenan aquellos aspectos mas importantes, que serán utilizados en lecciones sucesivas. En estas se desarrolla un programa de computador muy sencillo -sin complicaciones informáticas que obscurezcan la simplicidad del método- y se analiza de un modo detallado -en forma de organigramas y listados comentados- las distintas rutinas en lenguaje FORTRAN de este programa. Asimismo, y respetando el carácter elemental de la exposición se abren algunas posibilidades de ampliación y nuevos desarrollos del método. Algunos ejercicios y ejemplos al final de cada capítulo se espera permitan clarificar los puntos mas conflictivos del método. Finalmente se reúne en un apéndice, los distintos programas que se han mostrado en las sucesivas lecciones y que con objeto de que puedan ser procesados en microcomputadores se han traducido al lenguaje BASIC. Creemos y la experiencia del curso así nos la ha confirmado, que el método de elementos finitos se debe enseñar y aprender mediante la praxis y presentar los sucesivos desarrollos del método de un modo motivado como solución a problemas numéricos e informáticos que aparecen en su desarrollo. Si las lecciones que aquí se presentan permiten transmitir mejor estas ideas, los autores se sentirán más que recompensados por el trabajo que ha supuesto dar a luz a esta publicación.
Resumo:
El objetivo de este proyecto es la creación de un modelo de gestión y control de la integridad de pozo, basado en el seguimiento de la operación y el análisis de su diseño y construcción. Para ello se diseña una herramienta tecnológica que permita disponer de la información necesaria y gestionarla según estándares internacionales. En la fase inicial del proyecto se realizó una revisión bibliográfica de los estudios más relevantes sobre integridad de pozos, tanto de la asociación SPE (Society of Petroleum Engineers), de Universidades de Noruega y México, o de empresas como ECOPETROL, con el fin entrar en el contexto y analizar antecedentes de modelos y herramientas similares. En segundo lugar se ha realizado un estudio de las bases de datos, comenzando por un análisis de los estándares de PPDM (The Professional Petroleum Data Management Association) sobre los que se realiza la herramienta y se ha seleccionado la base de datos que más se adecua a la herramienta, considerando Access como la mejor opción por ser de fácil acceso e incorporar el módulo de informes. Para la creación de la solución se diseñó un modelo de datos, condicionado por los requisitos de integridad de pozos de la normativa noruega NORSOK D-010 y de la guía de recomendaciones para la integridad de pozos de la asociación de petróleo y gas de Noruega. La materialización de este modelo se realizó mediante la creación de una base de datos en la plataforma Access, y empleando lenguaje propio de Access combinado con programación SQL. Una vez definido y construido el modelo de datos, es posible crear una capa de visualización de la información. Para ello se define un informe de estado de pozo. Este informe será visible por el usuario según sus roles y responsabilidades. ABSTRACT The objective of this project is to create a model for managing and controlling the well integrity. It is based on the monitoring of the operation and the analysis of its design and construction. Therefore a technological tool is designed; to allow having the necessary information and to manage it according to international standards. At the beginning of the project, a literature review of the most relevant studies on well integrity was performed. It was made to enter into context and to analyze the history of the models and available similar tools. It included texts from the association SPE (Society of Petroleum Engineers), universities from Norway and Mexico, and companies like ECOPETROL. Secondly there has been a study of the databases. It began with an analysis of PPDM (The Professional Petroleum Data Management Association) standards; about which, the tool is made. After the analysis, Access was considered the best option because it is easily accessible and incorporates the reporting module. In order to create the solution a data model was designed. It was conditioned by the requirements of integrity of wells, in the Norwegian standards and in the NORSOK D010 recommendations guide for well integrity of the Norwegian oil and gas Association. This model was performed by a database in the Access platform, and using Access language, combined with SQL programming. Once the data model is defined and built, it is possible to create a layer of data visualization. A report of this well is defined to create it. This report will be visible for the user according to their roles and responsibilities.
Resumo:
A raíz de la aparición de los procesadores dotados de varios “cores”, la programación paralela, un concepto que, por otra parte no era nada nuevo y se conocía desde hace décadas, sufrió un nuevo impulso, pues se creía que se podía superar el techo tecnológico que había estado limitando el rendimiento de esta programación durante años. Este impulso se ha ido manteniendo hasta la actualidad, movido por la necesidad de sistemas cada vez más potentes y gracias al abaratamiento de los costes de fabricación. Esta tendencia ha motivado la aparición de nuevo software y lenguajes con componentes orientados precisamente al campo de la programación paralela. Este es el caso del lenguaje Go, desarrollado por Google y lanzado en 2009. Este lenguaje se basa en modelos de concurrencia que lo hacen muy adecuados para abordar desarrollos de naturaleza paralela. Sin embargo, la programación paralela es un campo complejo y heterogéneo, y los programadores son reticentes a utilizar herramientas nuevas, en beneficio de aquellas que ya conocen y les son familiares. Un buen ejemplo son aquellas implementaciones de lenguajes conocidos, pero orientadas a programación paralela, y que siguen las directrices de un estándar ampliamente reconocido y aceptado. Este es el caso del estándar OpenMP, un Interfaz de Programación de Aplicaciones (API) flexible, portable y escalable, orientado a la programación paralela multiproceso en arquitecturas multi-core o multinucleo. Dicho estándar posee actualmente implementaciones en los lenguajes C, C++ y Fortran. Este proyecto nace como un intento de aunar ambos conceptos: un lenguaje emergente con interesantes posibilidades en el campo de la programación paralela, y un estándar reputado y ampliamente extendido, con el que los programadores se encuentran familiarizados. El objetivo principal es el desarrollo de un conjunto de librerías del sistema (que engloben directivas de compilación o pragmas, librerías de ejecución y variables de entorno), soportadas por las características y los modelos de concurrencia propios de Go; y que añadan funcionalidades propias del estándar OpenMP. La idea es añadir funcionalidades que permitan programar en lenguaje Go utilizando la sintaxis que OpenMP proporciona para otros lenguajes, como Fortan y C/C++ (concretamente, similar a esta última), y, de esta forma, dotar al usuario de Go de herramientas para programar estructuras de procesamiento paralelo de forma sencilla y transparente, de la misma manera que lo haría utilizando C/C++.---ABSTRACT---As a result of the appearance of processors equipped with multiple "cores ", parallel programming, a concept which, moreover, it was not new and it was known for decades, suffered a new impulse, because it was believed they could overcome the technological ceiling had been limiting the performance of this program for years. This impulse has been maintained until today, driven by the need for ever more powerful systems and thanks to the decrease in manufacturing costs. This trend has led to the emergence of new software and languages with components guided specifically to the field of parallel programming. This is the case of Go language, developed by Google and released in 2009. This language is based on concurrency models that make it well suited to tackle developments in parallel nature. However, parallel programming is a complex and heterogeneous field, and developers are reluctant to use new tools to benefit those who already know and are familiar. A good example are those implementations from well-known languages, but parallel programming oriented, and witch follow the guidelines of a standard widely recognized and accepted. This is the case of the OpenMP standard, an application programming interface (API), flexible, portable and scalable, parallel programming oriented, and designed for multi-core architectures. This standard currently has implementations in C, C ++ and Fortran. This project was born as an attempt to combine two concepts: an emerging language, with interesting possibilities in the field of parallel programming, and a reputed and widespread standard, with which programmers are familiar with. The main objective is to develop a set of system libraries (which includes compiler directives or pragmas, runtime libraries and environment variables), supported by the characteristics and concurrency patterns of Go; and that add custom features from the OpenMP standard. The idea is to add features that allow programming in Go language using the syntax OpenMP provides for other languages, like Fortran and C / C ++ (specifically, similar to the latter ), and, in this way, provide Go users with tools for programming parallel structures easily and, in the same way they would using C / C ++.
Resumo:
El paradigma de procesamiento de eventos CEP plantea la solución al reto del análisis de grandes cantidades de datos en tiempo real, como por ejemplo, monitorización de los valores de bolsa o el estado del tráfico de carreteras. En este paradigma los eventos recibidos deben procesarse sin almacenarse debido a que el volumen de datos es demasiado elevado y a las necesidades de baja latencia. Para ello se utilizan sistemas distribuidos con una alta escalabilidad, elevado throughput y baja latencia. Este tipo de sistemas son usualmente complejos y el tiempo de aprendizaje requerido para su uso es elevado. Sin embargo, muchos de estos sistemas carecen de un lenguaje declarativo de consultas en el que expresar la computación que se desea realizar sobre los eventos recibidos. En este trabajo se ha desarrollado un lenguaje declarativo de consultas similar a SQL y un compilador que realiza la traducción de este lenguaje al lenguaje nativo del sistema de procesamiento masivo de eventos. El lenguaje desarrollado en este trabajo es similar a SQL, con el que se encuentran familiarizados un gran número de desarrolladores y por tanto aprender este lenguaje no supondría un gran esfuerzo. Así el uso de este lenguaje logra reducir los errores en ejecución de la consulta desplegada sobre el sistema distribuido al tiempo que se abstrae al programador de los detalles de este sistema.---ABSTRACT---The complex event processing paradigm CEP has become the solution for high volume data analytics which demand scalability, high throughput, and low latency. Examples of applications which use this paradigm are financial processing or traffic monitoring. A distributed system is used to achieve the performance requisites. These same requisites force the distributed system not to store the events but to process them on the fly as they are received. These distributed systems are complex systems which require a considerably long time to learn and use. The majority of such distributed systems lack a declarative language in which to express the computation to perform over incoming events. In this work, a new SQL-like declarative language and a compiler have been developed. This compiler translates this new language to the distributed system native language. Due to its similarity with SQL a vast amount of developers who are already familiar with SQL will need little time to learn this language. Thus, this language reduces the execution failures at the time the programmer no longer needs to know every single detail of the underlying distributed system to submit a query.
Resumo:
En esta memoria hacemos contribuciones dentro del campo de los lenguajes de bases de datos. Nos hemos propuesto tres objetivos fundamentales: 1. Mejorar la expresividad de los lenguajes de bases de datos actuales. 2. Desarrollar semánticas formales para nuestras propuestas de lenguajes de bases de datos extendidos. 3. Llevar a cabo la implementación de las semánticas anteriores en sistemas de bases de datos prácticos. Hemos conseguido estos tres objetivos en distintas áreas dentro de las bases de datos. Por un lado, en el campo de las bases de datos deductivas, proponemos HH:(C). Este lenguaje extiende las capacidades de los lenguajes de bases de datos deductivos con restricciones dado que permite consultas hipotéticas y cuanti cación universal. Por otro lado, utilizamos el estudio dentro de las bases de datos deductivas y lo aplicamos a las bases de datos relacionales. En concreto proponemos HR-SQL que incorpora consultas hipotéticas y de niciones recursivas no lineales y mutuamente recursivas. La idea tras esta propuesta es superar algunas limitaciones expresivas del lenguaje estándar de de nición de bases de datos SQL. A continuación introducimos ambas aproximaciones. Las fórmulas de Harrop hereditarias con restricciones, HH(C), se han usado como base para lenguajes de programación lógica con restricciones. Al igual que la programación lógica da soporte a lenguajes de bases de datos deductivas como Datalog (con restricciones), este marco se usa como base para un sistema de bases de datos deductivas que mejora la expresividad de los sistemas aparecidos hasta el momento. En el segundo capítulo de esta memoria se muestran los resultados teóricos que fundamentan el lenguaje HH:(C) y una implementación concreta de este esquema que demuestra la viabilidad y expresividad del esquema. Las principales aportaciones con respecto a Datalog son la incorporación de la implicación intuicionista, que permite formular hipótesis, y el uso de cuanti cadores incluso en el lenguaje de restricciones. El sistema está diseñado de forma que soporta diferentes sistemas de restricciones. La implementación incluye varios dominios concretos y también funciones de agregación y restricciones de integridad que son habituales en otros lenguajes de bases de datos relacionales. El signi cado del lenguaje se de ne mediante una semántica de pruebas y el mecanismo operacional se de ne mediante una sem ánica de punto jo que es correcta y completa con respecto a la primera. Para el cómputo de las consultas hipotéticas y de las funciones de agregación se hace uso de una noción de estrati cación más compleja que la que usa Datalog. La semántica de punto jo desarrollada constituye un marco apropiado que lleva a la implementación de un sistema concreto...
Resumo:
El objetivo de este documento es presentar dos aproximaciones generales a la axiomatización de clases y conjuntos. De una parte, la aproximación matemáticas, mostrando el origen, evolución y desarrollo de la teoría matemática de clases y conjuntos, sin formular completamente el desarrollo axiomático, sólo mostrando los conceptos básicos y las crisis generadas por ellos y la solución más usualmente aceptada. Por otra parte, la aproximación dada por el paradigma orientado a objetos, siguiendo especialmente la línea marcada por el lenguaje smalltalk-80
Resumo:
La complejidad de los sistemas actuales de computación ha obligado a los diseñadores de herramientas CAD/CAE a acondicionar lenguajes de alto nivel, tipo C++, para la descripción y automatización de estructuras algorítmicas a sus correspondientes diseños a nivel físico. Los proyectos a realizar se encuadran dentro de una línea de trabajo consistente en estudiar la programación, funcionamiento de los lenguajes SystemC y SystemVerilog, sus herramientas asociadas y analizar cómo se adecuan a las restricciones temporales y físicas de los componentes (librerías, IP's, macro-celdas, etc) para su directa implementación. En una primera fase, y para este TFG, se estudiarán los componentes que conforman el framework elegido que es SystemC y su inclusión en herramientas de diseño arquitectural. Este conocimiento nos ayudará a entender el funcionamiento y capacidad de dicha herramienta y proceder a su correcto manejo. Analizaremos y estudiaremos unos de los lenguajes de alto nivel de los que hace uso dicha herramienta. Una vez entendido el contexto de aplicación, sus restricciones y sus elementos, diseñaremos una estructura hardware. Una vez que se tenga el diseño, se procederá a su implementación haciendo uso, si es necesario, de simuladores. El proyecto finalizará con una definición de un conjunto de pruebas con el fin de verificar y validar la usabilidad y viabilidad de nuestra estructura hardware propuesta.
Resumo:
Sin lugar a dudas, el inglés se ha convertido en las últimas décadas en la lingua franca de la comunidad científica internacional, desplazando incluso a otras lenguas que tuvieron una gran importancia en otras épocas, caso del francés o del alemán. El lenguaje científico español también ha sucumbido a esta entrada masiva del inglés en las distintas disciplinas científico-técnicas, y presenta desde hace unas décadas ciertas características que no son propias de las reglas gramaticales del español y que son el fruto de una contaminación lingüística derivada de la penetración del inglés. El objetivo del presente artículo es analizar las características del lenguaje médico tal y como lo podemos encontrar en las publicaciones españolas actuales. Para ello, el artículo se divide en tres apartados: en primer lugar, haremos un breve recorrido por la historia del lenguaje médico como punto de partida para comprender la evolución de este lenguaje. En segundo lugar, analizaremos las características principales dentro de los niveles léxicosemántico, morfosintáctico y fonético-fonológico del lenguaje médico español y veremos la influencia que ha tenido el inglés en el proceso de evolución del mismo. En tercer lugar, examinaremos los procedimientos de creación y formación de términos médicos y cómo afectan al desarrollo lingüístico de la terminología.
Resumo:
Comunicação apresentada nas Jornadas de Língua e Direito, organizadas pelo ISCAP e pela Universidade Católica Portuguesa, Outubro de 2013.
Resumo:
En el presente proyecto se pretende explorar si los textos que se requieren a los alumnos responden a las características y exigencias de los textos de mayor circulación social que supuestamente serán requeridos por la sociedad una vez que los niños egresan de la etapa de escolaridad obligatoria. Un primer análisis de los textos escritos por los alumnos, registrados en sus cuadernos como "tareas de composición" permitió observar transformaciones sustanciales que los distancian notablemente de las características y estructuras esenciales definidas por la lingüística textual y la pragmática discursiva. El objetivo de este estudio es analizar la distancia que separa los textos escolares de los textos sociales desde una perspectiva de los estudios actuales de transposición didáctica. Se caracteriza a la transposición didáctica como un proceso complejo de transformaciones adaptativas mediante el cual el conocimiento elaborado en el plano científico se convierte en conocimiento escolarizado. En el proyecto se propone explorar las transformaciones que se producen en la enseñanza del lenguaje escrito, focalizando el análisis en dos planos: 1. El plano textual pretende: detectar la distancia que se produce en el contexto de producción y los textos de circulación social con las condiciones de producción efectivamente por los alumnos. Además, comparar las características configuracionales y discursivas que identifican a los textos sociales y escolares. 2. Plano ortográficos tal como son descriptos por la disciplina de referencia y como son vehiculizados en el aula. Interesa elaborar categorías de transposición didáctica al lenguaje escrito, planos de análisis para describir las transformaciones que se producen durante el proceso de pedagogización del saber. Al evidenciar las transformaciones que se infringe al lenguaje escrito como consecuencia de ciertas prácticas pedagógicas, se pretende contribuir a repensar las mismas con el propósito de neutralizar los efectos distorsionantes de la transposición didáctica.