• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 49
  • 7
  • 5
  • 5
  • 2
  • 1
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 109
  • 109
  • 59
  • 43
  • 41
  • 25
  • 16
  • 12
  • 11
  • 11
  • 10
  • 10
  • 10
  • 10
  • 10
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
101

Implantation des futures sur un système distribué par passage de messages

Lasalle-Ratelle, Jérémie 08 1900 (has links)
Ce mémoire présente une implantation de la création paresseuse de tâches desti- née à des systèmes multiprocesseurs à mémoire distribuée. Elle offre un sous-ensemble des fonctionnalités du Message-Passing Interface et permet de paralléliser certains problèmes qui se partitionnent difficilement de manière statique grâce à un système de partitionnement dynamique et de balancement de charge. Pour ce faire, il se base sur le langage Multilisp, un dialecte de Scheme orienté vers le traitement parallèle, et implante sur ce dernier une interface semblable à MPI permettant le calcul distribué multipro- cessus. Ce système offre un langage beaucoup plus riche et expressif que le C et réduit considérablement le travail nécessaire au programmeur pour pouvoir développer des programmes équivalents à ceux en MPI. Enfin, le partitionnement dynamique permet de concevoir des programmes qui seraient très complexes à réaliser sur MPI. Des tests ont été effectués sur un système local à 16 processeurs et une grappe à 16 processeurs et il offre de bonnes accélérations en comparaison à des programmes séquentiels équiva- lents ainsi que des performances acceptables par rapport à MPI. Ce mémoire démontre que l’usage des futures comme technique de partitionnement dynamique est faisable sur des multiprocesseurs à mémoire distribuée. / This master’s thesis presents an implementation of lazy task creation for distributed memory multiprocessors. It offers a subset of Message-Passing Interface’s functionality and allows parallelization of some problems that are hard to statically partition thanks to its dynamic partitionning and load balancing system. It is based on Multilisp, a Scheme dialect for parallel computing, and implements an MPI like interface on top of it. It offers a richer and more expressive language than C and simplify the work needed to developp programs similar to those in MPI. Finally, dynamic partitioning allows some programs that would be very hard to develop in MPI. Tests were made on a 16 cpus computer and on a 16 cpus cluster. The system gets good accelerations when compared to equivalent sequential programs and acceptable performances when compared to MPI. It shows that it is possible to use futures as a dynamic partitioning method on distributed memory multiprocessors.
102

Sur l’utilisation du langage de programmation Scheme pour le développement de jeux vidéo

St-Hilaire, David 10 1900 (has links)
Ce mémoire vise à recenser les avantages et les inconvénients de l'utilisation du langage de programmation fonctionnel dynamique Scheme pour le développement de jeux vidéo. Pour ce faire, la méthode utilisée est d'abord basée sur une approche plus théorique. En effet, une étude des besoins au niveau de la programmation exprimés par ce type de développement, ainsi qu'une description détaillant les fonctionnalités du langage Scheme pertinentes au développement de jeux vidéo sont données afin de bien mettre en contexte le sujet. Par la suite, une approche pratique est utilisée en effectuant le développement de deux jeux vidéo de complexités croissantes: Space Invaders et Lode Runner. Le développement de ces jeux vidéo a mené à l'extension du langage Scheme par plusieurs langages spécifiques au domaine et bibliothèques, dont notamment un système de programmation orienté objets et un système de coroutines. L'expérience acquise par le développement de ces jeux est finalement comparée à celle d'autres développeurs de jeux vidéo de l'industrie qui ont utilisé Scheme pour la création de titres commerciaux. En résumé, l'utilisation de ce langage a permis d'atteindre un haut niveau d'abstraction favorisant la modularité des jeux développés sans affecter les performances de ces derniers. / This master's thesis aims at pinpointing the pros and cons of using the dynamic functionnal language Scheme for developing video games. The method used is first based on a theoretical approach. Indeed, the specific requirements for video game programming and a detailed description of relevant Scheme features are presented. Then, a practical approach is taken by presenting two video games developed using the Scheme language: Space Invaders and Lode Runner. Their development resulted in the creation of various domain-specific languages and libraries, such as an objec- oriented system and a coroutine system. Each of these are presented separately in their respective chapter. Finally, the experience achieved in this process is compared to the experience acquired by some video game companies that also used Scheme for the developpement of their titles. The use of Scheme allowed us to perform various high-level abstractions that improved the modularity of the video games developed, without affecting their performance.
103

Implantation des futures sur un système distribué par passage de messages

Lasalle-Ratelle, Jérémie 08 1900 (has links)
Ce mémoire présente une implantation de la création paresseuse de tâches desti- née à des systèmes multiprocesseurs à mémoire distribuée. Elle offre un sous-ensemble des fonctionnalités du Message-Passing Interface et permet de paralléliser certains problèmes qui se partitionnent difficilement de manière statique grâce à un système de partitionnement dynamique et de balancement de charge. Pour ce faire, il se base sur le langage Multilisp, un dialecte de Scheme orienté vers le traitement parallèle, et implante sur ce dernier une interface semblable à MPI permettant le calcul distribué multipro- cessus. Ce système offre un langage beaucoup plus riche et expressif que le C et réduit considérablement le travail nécessaire au programmeur pour pouvoir développer des programmes équivalents à ceux en MPI. Enfin, le partitionnement dynamique permet de concevoir des programmes qui seraient très complexes à réaliser sur MPI. Des tests ont été effectués sur un système local à 16 processeurs et une grappe à 16 processeurs et il offre de bonnes accélérations en comparaison à des programmes séquentiels équiva- lents ainsi que des performances acceptables par rapport à MPI. Ce mémoire démontre que l’usage des futures comme technique de partitionnement dynamique est faisable sur des multiprocesseurs à mémoire distribuée. / This master’s thesis presents an implementation of lazy task creation for distributed memory multiprocessors. It offers a subset of Message-Passing Interface’s functionality and allows parallelization of some problems that are hard to statically partition thanks to its dynamic partitionning and load balancing system. It is based on Multilisp, a Scheme dialect for parallel computing, and implements an MPI like interface on top of it. It offers a richer and more expressive language than C and simplify the work needed to developp programs similar to those in MPI. Finally, dynamic partitioning allows some programs that would be very hard to develop in MPI. Tests were made on a 16 cpus computer and on a 16 cpus cluster. The system gets good accelerations when compared to equivalent sequential programs and acceptable performances when compared to MPI. It shows that it is possible to use futures as a dynamic partitioning method on distributed memory multiprocessors.
104

Translating relational queries into iterative programs

Freytag, Johann Christoph, January 1900 (has links)
Thesis (Ph. D.)--Harvard University, 1985. / Includes bibliographical references (p).
105

Eine funktionale Methode der Wissensrepräsentation

Oertel, Wolfgang 01 March 2024 (has links)
Das Anliegen der Arbeit besteht in der Entwicklung eines Wissensrepräsentationsmodells, das sich insbesondere für die Beschreibung komplex strukturierter Objekte eignet. Den Ausgangspunkt bildet eine Charakterisierung der Problematik der Wissensrepräsentation. Aus der Darstellung eines für das Gebiet der rechnergestützten Konstruktion typischen Diskursbereiches Getriebekonstruktion lassen sich Anforderungen an Modelle zur Beschreibung komplex strukturierter Objekte in Wissensbasen ableiten. Der Hauptteil der Arbeit besteht in der Entwicklung eines funktionalen Wissensrepräsentationsmodells, das diesen Anforderungen gerecht wird. Das Modell ermöglicht gleichzeitig eine effiziente Implementation wissensbasierter Systeme auf der Grundlage der Programmiersprache LISP sowie das Herstellen von Beziehungen zu Datenmodellen einerseits und Wissensrepräsentationsmodellen, insbesondere der Prädikatenlogik erster Ordnung, andererseits. Unter Bezugnahme auf die Datenbanktechnologie wird die Struktur von Wissensbanksystemen beschrieben. Ein wesentlicher Aspekt der Arbeit besteht im Aufzeigen der Möglichkeit und des Weges, das Wissen eines Konstrukteurs zu formalisieren und in eine Wissensbasis abzubilden.:1. Einleitung 2. Wissensrepräsentation in technischen Systemen 3. Beispielsdiskursbereiche 4. Funktionales Wissensrepräsentationsmodell 5. Beziehungen zwischen Prädikatenlogik erster Ordnung und funktionalem Wissensrepräsentationsmodell 6. Aufbau von Wissensbanksystemen 7. Anwendung des funktionalen Wissensrepräsentationsmodells für die Implementation wissensbasierter Systeme 8. Schlussbemerkungen
106

Do Widget Libraries Need Mutable Data?

Arumugasamy, Akshay Kumar 11 1900 (has links)
This thesis examines trends in the academic and professional literature around immutable data and its relationship with declarative User Interfaces (UIs). Immutable data types are preferred by academic authors due to their increased safety, and commercial languages are increasing their support for them over time. More recently, declarative UIs are an exploding topic in industry, and these are related, although not as closely as one would expect. Declarative programming tries to focus on highlevel requirements, not low-level details. It is easier to do this if functions have no side effects, and immutable data is a guaranteed way of achieving this. To highlight this property, the declarative UI framework Flutter advertises “stateless widgets”, but their existence puts in highlights the lack of this property in most widgets. Consequently, we ask whether it is feasible to build a Graphical User Interface (GUI) toolkit using purely immutable data structures. To accomplish this objective, a purely immutable GUI toolkit is sketched and partially developed using Elm, a purely functional language in which all data structures are immutable. To understand the requirements of a GUI toolkit, we categorize and put in historical context, different design paradigms for UIs and relate them to core software-design principles. Leading toolkits allow developers to visualize and manage multiple views of their interfaces, including the view hierarchy, layout, interface to business logic, and focus management. By creating a concrete example, the research aims to provide insight into the limitations of utilizing purely immutable data within a GUI framework and suggests future work to mitigate these. / Thesis / Master of Science (MSc)
107

[en] A SURVEY OF FUNCTION VALUES IN IMPERATIVE PROGRAMMING LANGUAGES / [pt] UM LEVANTAMENTO SOBRE O SUPORTE A FUNÇÕES COMO VALORES EM LINGUAGENS IMPERATIVAS

LUIZ ROMARIO SANTANA RIOS 30 March 2020 (has links)
[pt] Se diz que uma linguagem de programação tem funções de primeira classe quando ela fornece a capacidade de manipular funções da mesma maneira que outros valores, isto é, guardar em variáveis, passar como parâmetros, etc.. Programar com funções de primeira classe abre o programadora novas formas de abstração e é o padrão em linguagens de programação funcionais. Porém, se tratando de linguagens imperativas (incluindo linguagens orientadas a objeto), cada linguagem tem semântica, propriedades e terminologia diferentes para funções—em grande parte graças a seu foco em mutabilidade, que as linguagens funcionais não têm. Para esclarecer essas diferenças, nós fizemos um levantamento sobre a especificação de funções como valores em linguagens de programação imperativas de várias disciplinas diferentes. Para cada linguagem, nós ilustramos, nos baseando em exemplos, as propriedades dos valores de funções nela,destacando onde ela difere de outras linguagens—tudo isso usando uma terminologia consistente em todas as linguagens. Nós esperamos oferecer uma referência para desenvolvedores compararem e contrastarem as diferentes versões de funções num só lugar. / [en] A programming language is said to have first-class functions when it provides the capability of manipulating functions in the same way as other values, i.e., storing in variables, passing as parameters, etc.. Programming with first-class functions opens the programmer to new forms of abstractions and it s the default in functional programming languages. However, in the realm of imperative languages (including object-oriented languages), each language has different semantics, properties, and terminology for functions—in great part, thanks to their focus on mutability, which isn t present in functional languages. To help shed light on these differences, we made a survey of the specifi-cation of function values in imperative programming languages from many different disciplines. For each language, we illustrate, based on examples,the properties of function values in it, highlighting where it differs from other languages—all this with a consistent terminology in all languages. We provide a reference that compares and contrasts different renditions offunctions in one single place and conclude that the design of functions in a language depends on the interaction of its features and constraints with its functions.
108

Možnosti deklarativního programování v jazyku Java 8 / Possibilities of Declarative Programming in Java 8

Rytych, Maxim January 2015 (has links)
This paper concerns itself with possibilities of declarative programming in the new version of Java 8 language, specifically using elements adopted from the domain of functional programming languages: function as a value and lazy streams of data. The goal of this paper is to demonstrate possibilities of declarative programming using these elements, analyze its implementation and design own extensions. The contribution lies particularly in showing possibilities of the new elements, implementation analysis and design of a new functionality. The output can be used by a Czech reader, who is at least slightly advanced in the field of information technologies. The paper is divided into a theoretical and practical parts. Theoretical part is covered by chapters 3-8. Theoretical part describes motivation for introduction of the new elements, describes functional programming and its basic principles, then it shows basic principles of the newly introducted elements and ends with the description of the java.util.stream package. Pactical part is covered by chapters 9 and 10. Practical part concerns with stream oper-ations and extension design of existing functionality.
109

Programming tools for intelligent systems

Considine, Breandan 04 1900 (has links)
Les outils de programmation sont des programmes informatiques qui aident les humains à programmer des ordinateurs. Les outils sont de toutes formes et tailles, par exemple les éditeurs, les compilateurs, les débogueurs et les profileurs. Chacun de ces outils facilite une tâche principale dans le flux de travail de programmation qui consomme des ressources cognitives lorsqu’il est effectué manuellement. Dans cette thèse, nous explorons plusieurs outils qui facilitent le processus de construction de systèmes intelligents et qui réduisent l’effort cognitif requis pour concevoir, développer, tester et déployer des systèmes logiciels intelligents. Tout d’abord, nous introduisons un environnement de développement intégré (EDI) pour la programmation d’applications Robot Operating System (ROS), appelé Hatchery (Chapter 2). Deuxièmement, nous décrivons Kotlin∇, un système de langage et de type pour la programmation différenciable, un paradigme émergent dans l’apprentissage automatique (Chapter 3). Troisièmement, nous proposons un nouvel algorithme pour tester automatiquement les programmes différenciables, en nous inspirant des techniques de tests contradictoires et métamorphiques (Chapter 4), et démontrons son efficacité empirique dans le cadre de la régression. Quatrièmement, nous explorons une infrastructure de conteneurs basée sur Docker, qui permet un déploiement reproductible des applications ROS sur la plateforme Duckietown (Chapter 5). Enfin, nous réfléchissons à l’état actuel des outils de programmation pour ces applications et spéculons à quoi pourrait ressembler la programmation de systèmes intelligents à l’avenir (Chapter 6). / Programming tools are computer programs which help humans program computers. Tools come in all shapes and forms, from editors and compilers to debuggers and profilers. Each of these tools facilitates a core task in the programming workflow which consumes cognitive resources when performed manually. In this thesis, we explore several tools that facilitate the process of building intelligent systems, and which reduce the cognitive effort required to design, develop, test and deploy intelligent software systems. First, we introduce an integrated development environment (IDE) for programming Robot Operating System (ROS) applications, called Hatchery (Chapter 2). Second, we describe Kotlin∇, a language and type system for differentiable programming, an emerging paradigm in machine learning (Chapter 3). Third, we propose a new algorithm for automatically testing differentiable programs, drawing inspiration from techniques in adversarial and metamorphic testing (Chapter 4), and demonstrate its empirical efficiency in the regression setting. Fourth, we explore a container infrastructure based on Docker, which enables reproducible deployment of ROS applications on the Duckietown platform (Chapter 5). Finally, we reflect on the current state of programming tools for these applications and speculate what intelligent systems programming might look like in the future (Chapter 6).

Page generated in 0.0467 seconds