94 research outputs found

    Mixing the Objective Caml and C# Programming Models in the .Net Framework

    Get PDF
    We present a new code generator, called O'Jacare.net, to inter-operate between C# and Objective Caml through their object models. O'Jacare.net defines a basic IDL (Interface Definition Language) that describes classes and interfaces in order to communicate between Objective Caml and C#. O'Jacare.net generates all needed wrapper classes and takes advantage of static type checking in both worlds. Although the IDL intersects these two object models, O'Jacare.net allows to combine features from both

    A static analysis framework for security properties in mobile and cryptographic systems

    Get PDF
    We introduce a static analysis framework for detecting instances of security breaches in infinite mobile and cryptographic systems specified using the languages of the 7r-calculus and its cryptographic extension, the spi calculus. The framework is composed from three components: First, standard denotational semantics of the 7r-calculus and the spi calculus are constructed based on domain theory. The resulting model is sound and adequate with respect to transitions in the operational semantics. The standard semantics is then extended correctly to non-uniformly capture the property of term substitution, which occurs as a result of communications and successful cryptographic operations. Finally, the non-standard semantics is abstracted to operate over finite domains so as to ensure the termination of the static analysis. The safety of the abstract semantics is proven with respect to the nonstandard semantics. The results of the abstract interpretation are then used to capture breaches of the secrecy and authenticity properties in the analysed systems. Two initial prototype implementations of the security analysis for the 7r-calculus and the spi calculus are also included in the thesis. The main contributions of this thesis are summarised by the following. In the area of denotational semantics, the thesis introduces a domain-theoretic model for the spi calculus that is sound and adequate with respect to transitions in the structural operational semantics. In the area of static program analysis, the thesis utilises the denotational approach as the basis for the construction of abstract interpretations for infinite systems modelled by the 7r-calculus and the spi calculus. This facilitates the use of computationally significant mathematical concepts like least fixed points and results in an analysis that is fully compositional. Also, the thesis demonstrates that the choice of the term-substitution property in mobile and cryptographic programs is rich enough to capture breaches of security properties, like process secrecy and authenticity. These properties are used to analyse a number of mobile and cryptographic protocols, like the file transfer protocol and the Needham-Schroeder, SPLICE/AS, Otway-Rees, Kerberos, Yahalom and Woo Lam authentication protocols

    Ur/Web: A Simple Model for Programming the Web

    Get PDF
    The World Wide Web has evolved gradually from a document delivery platform to an architecture for distributed programming. This largely unplanned evolution is apparent in the set of interconnected languages and protocols that any Web application must manage. This paper presents Ur/Web, a domain-specific, statically typed functional programming language with a much simpler model for programming modern Web applications. Ur/Web's model is unified, where programs in a single programming language are compiled to other "Web standards" languages as needed; modular, supporting novel kinds of encapsulation of Web-specific state; and exposes simple concurrency, where programmers can reason about distributed, multithreaded applications via a mix of transactions and cooperative preemption. We give a tutorial introduction to the main features of Ur/Web, formalize the basic programming model with operational semantics, and discuss the language implementation and the production Web applications that use it.National Science Foundation (U.S.) (Grant CCF-1217501

    Development of a Biomembrane Sensor Based on Reflectometry

    Get PDF
    Membranproteine spielen eine wichtige Rolle in vielen biochemischen Prozessen der Zelle, wie zum Beispiel der Signaltransduktion, der Zelladhesion oder auch der Erkennung von Krankheitserregern. Viele dieser Proteine sind von Bedeutung für die Entwicklung neuer innovativer Medikamente. Somit hat auch die Entwicklung von Sensoren, die die Untersuchung von Membranproteinen in ihrer natürlichen Umgebung erlauben an Bedeutung gewonnen [1]. Thema dieser Doktorarbeit war die Entwicklung von Analysekonzepten die es ermöglichen unterschiedliche Aspekte von Membraninteraktionen zu untersuchen und zu quantifizieren. Als Analysemethode wurde dafür reflektometrische Interferenz Spektroskopie (RIfS) eine markierungsfreie, optische Methode verwendet. RIfS erlaubt es die Höhe dünner transparenter Filme zu bestimmen, indem das Weißlicht-Reflexionspektrum eines solchen Films aufgezeichnet wird. Durch die Überlagerung der in dem Film mehrfach reflektierten Teilstrahlen entsteht ein Interferenzmuster im Reflexionsspektrum, welches Aufschluß gibt über die Schichtdicke und den Brechungsindex des transparenten Films. Es wurde bereits gezeigt, dass RIfS eine geeignete Methode zur Untersuchung von Protein-ProteinWechselwirkungen ist [2]. Aus diesem Grund wurde RIfS als Detektionsverfahren für die Entwicklung eines Membransensors gewählt. Im Laufe dieser Arbeit entstanden zwei Aufbauten für reflektometrische Messungen. Ein Standard RIfS Aufbau und ein Instrument das die Methode mit Fluoreszenz-Mikroskopie kombiniert. Um dieWechselwirkung von Proteinen selbst und Proteinen mit Membranbestandteilen wie Lipiden zu untersuchen, wurde ein Konzept basierend auf festkörperunterstützten Membranen entwickelt. Dieses Experiment erlaubt es die Wechselwirkungen auf artifiziellen Membranen, sowie auf rekonstituierten Zellmembranen zu untersuchen. Zudem wurde ein Analysekonzept mit Nano-BLMs entwickelt, dass es erlaubt den simultanen Transport von Molekülen in ein membranverschlossenes Kompartiment hinein als auch heraus zu beobachten. Neben diesen membranbasierten Experimenten wurde auch ein Konzept entwickelt, welches es erlaubt die molekulare Erkennungsreaktion von sehr kleiner Analyten direkt zu messen. Dieses Messkonzept erlaubt es die Bindung von Molekülen mit sehr kleinem Molekulargewicht an einen auf dem Sensor immobilisierten Partner direkt zu quantifizieren

    Adaptive Constraint Solving for Information Flow Analysis

    Get PDF
    In program analysis, unknown properties for terms are typically represented symbolically as variables. Bound constraints on these variables can then specify multiple optimisation goals for computer programs and nd application in areas such as type theory, security, alias analysis and resource reasoning. Resolution of bound constraints is a problem steeped in graph theory; interdependencies between the variables is represented as a constraint graph. Additionally, constants are introduced into the system as concrete bounds over these variables and constants themselves are ordered over a lattice which is, once again, represented as a graph. Despite graph algorithms being central to bound constraint solving, most approaches to program optimisation that use bound constraint solving have treated their graph theoretic foundations as a black box. Little has been done to investigate the computational costs or design e cient graph algorithms for constraint resolution. Emerging examples of these lattices and bound constraint graphs, particularly from the domain of language-based security, are showing that these graphs and lattices are structurally diverse and could be arbitrarily large. Therefore, there is a pressing need to investigate the graph theoretic foundations of bound constraint solving. In this thesis, we investigate the computational costs of bound constraint solving from a graph theoretic perspective for Information Flow Analysis (IFA); IFA is a sub- eld of language-based security which veri es whether con dentiality and integrity of classified information is preserved as it is manipulated by a program. We present a novel framework based on graph decomposition for solving the (atomic) bound constraint problem for IFA. Our approach enables us to abstract away from connections between individual vertices to those between sets of vertices in both the constraint graph and an accompanying security lattice which defines ordering over constants. Thereby, we are able to achieve significant speedups compared to state-of-the-art graph algorithms applied to bound constraint solving. More importantly, our algorithms are highly adaptive in nature and seamlessly adapt to the structure of the constraint graph and the lattice. The computational costs of our approach is a function of the latent scope of decomposition in the constraint graph and the lattice; therefore, we enjoy the fastest runtime for every point in the structure-spectrum of these graphs and lattices. While the techniques in this dissertation are developed with IFA in mind, they can be extended to other application of the bound constraints problem, such as type inference and program analysis frameworks which use annotated type systems, where constants are ordered over a lattice

    Interface Homem-Máquina Multi Robótica em Unity3D

    Get PDF
    More than ever the use of autonomous vehicles to accomplish objectives deemed too dangerous or even impossible by human standards is increasing. This demand puts to the test our capabilities for managing teams of multiple robots and creating intuitive interactions with these teams is a must. Creating means to abstract and condense the information that reaches the end user into a single kit of software would improve its manageability considerably. The development of a centralized graphical user interface is proposed to alleviate the workload of the human operator. This interface is thought out to be simple in delivering its information taking cues from video games, a well known industry in studying the theory behind the creation of user interfaces. Sensorial information is abstracted in a graphical perspective much like the attributes of a character inside a video game. The Unity game engine was used to implement such an interface, integrating ROS with a layer of DDS to manage the communications while providing QoS settings. The DDS solves the problem of multiple ROS masters by setting up a separate network where users can connect and disconnect seamlessly from the network, without the need to restart roscore on each machine. Interactions between these two software is made by using websockets on a local network. Visual representations of the sensors onboard the autonomous vehicles transform the huge stream of data into human understandable formats for immediate response by the operator. Dynamic generation of terrain was accomplished by the use of LiDAR and side-scan sensors, if available, to map the surroundings, while Mapbox provided prefetched terrain data from OpenStreetMaps.Mais do que nunca, o uso de veículos autónomos para cumprir objectivos considerados demasiado perigosos ou até mesmo impossíveis segundo os padrões humanos tem vindo a aumentar. Este requerimento testa as nossas capacidades de gestão de equipas de múltiplos robôs e torna a criação de interações intuitivas com estas equipas numa necessidade. Criar meios de abstrair e condensar a informação que chega ao utilizador final num só pacote de software iria melhorar a sua gestão consideravelmente. O desenvolvimento de uma interface gráfica centralizada é proposta de modo a aliviar a carga de trabalho do operador humano. Esta interface é pensada para transmitir a sua informação como um vídeo jogo, sendo que esta é uma indústria que conhecida pelo seu estudo de interfaces de utilizador. Informação sensorial é abstraída com uma perspectiva gráfica tal como os atributos de uma personagem de um vídeo jogo. O motor de jogo Unity foi o utilizado para implementar tal interface integrando funcionalidades de ROS com uma camada de DDS, responsável pela gestão das comunicações, fornecendo opções de QoS. O DDS resolve o problema de múltiplos ROS master estabelecendo uma rede separada em que os utilizadores podem conectar-se e desconectar-se simultaneamente sem haver a necessidade de reiniciar o roscore em cada máquina. Interações entre os dois software é efetuada através de websockets numa rede local. Representações visuais dos sensores a bordo dos veículos autónomos transformam os enormes fluxos de dados em formatos facilmente compreensíveis por humanos para resposta imediata por parte do operador. Geração dinâmica de ambientes virtuais foi tornado possível com recurso a sensores como LiDAR e side-scan, caso existam, enquanto que API’s como Mapbox e OpenStreetMaps forneceram dados estáticos destes ambientes

    Typed open programming : a higher-order, typed approach to dynamic modularity and distribution

    Get PDF
    In this dissertation we develop an approach for reconciling open programming the development of programs that support dynamic exchange of higher-order values with other processes with strong static typing in programming languages. We present the design of a concrete programming language, Alice ML, that consists of a conventional functional language extended with a set of orthogonal features like higher-order modules, dynamic type checking, higher-order serialisation, and concurrency. On top of these a flexible system of dynamic components and a simple but expressive notion of distribution is realised. The central concept in this design is the package, a first-class value embedding a module along with its interface type, which is dynamically checked whenever the module is extracted. Furthermore, we develop a formal model for abstract types that is not invalidated by the presence of primitives for dynamic type inspection, as is the case for the standard model based on existential quantification. For that purpose, we present an idealised language in form of an extended -calculus, which can express dynamic generation of types. This calculus is the first to combine and explore the interference of sealing and type inspection with higher-order singleton kinds, a feature for expressing sharing constraints on abstract types. A novel notion of abstracton kinds classifies abstract types. Higher-order type and kind coercions allow for modular translucent encapsulation of values at arbitrary type.In dieser Dissertation entwickeln wir einen programmiersprachlichen Ansatz zur Verbindung offener Programmierung der Entwicklung von Programmen, die das dynamische Laden und Austauschen höherstufiger Werte mit anderen Prozessen erlauben mit starker statischer Typisierung. Wir stellen das Design einer konkreten Programmiersprache namens Alice ML vor. Sie besteht aus einer konventionellen funktionalen Sprache, die um einen Satz orthogonaler Konzepte wie höherstufige Modularisierung, dynamische Typüberprüfung, höherstufige Serialisierung und Nebenläufigkeit erweitert wurde. Darauf aufbauend ist ein flexibles System dynamischer Komponenten sowie ein einfacher aber expressiver Ansatz fur Verteilung verwirklicht. Zentral ist dabei das Konzept eines Pakets (package), welches ein Modul in Kombination mit seinem Schnittstellentyp in einen Wert einbettet, und bei der Extraktion des Moduls eine dynamische Typüberprüfung vornimmt. Weiterhin entwickeln wir einen theoretischen Ansatz zur Modellierung von abstrakten Typen, welcher im Gegensatz zum herkömmlichen formalen Modell existentieller Quantifizierung auch in Gegenwart dynamischer Typinspektion gültig ist. Zu diesem Zweck definieren wir eine idealisierte Sprache in Form eines erweiterten λ-Kalküls, der dynamische Typgenerierung ausdrucken kann. Der Kalkül kombiniert diese erstmals mit höherstufigen Singleton Kinds, einem Sprachkonstrukt, welches Gleichheit von Typen ausdrücken kann. Zur Klassifizierung abstrakter Typen werden Abstraktions-Kinds als verwandtes Konzept entwickelt. Höherstufige Konversionen auf Term- und Typebene erlauben zudem die nachträgliche modulare Enkapsulierung von Werten beliebigen Typs
    corecore