18 research outputs found

    Scientific Programming: The Promises of Typed, Pure, and Lazy Functional Programming: Part II

    Get PDF
    This second installment picks up where Konrad Hinsen\u27s article The Promises of Functional Programming from the July/August 2009 issue left off, covering static type inference and lazy evaluation in functional programming languages

    Symbolic quantum programming for supporting applications of quantum computing technologies

    Full text link
    The goal of this paper is to deliver the overview of the current state of the art, to provide experience report on developing quantum software tools, and to outline the perspective for developing quantum programming tools supporting symbolic programming for the needs of quantum computing technologies. The main focus of this paper is on quantum computing technologies, as they can in the most direct way benefit from developing tools enabling the symbolic manipulation of quantum circuits and providing software tools for creating, optimizing, and testing quantum programs. We deliver a short survey of the most popular approaches in the field of quantum software development and we aim at pointing their strengths and weaknesses. This helps to formulate a list of desirable characteristics which should be included in quantum computing frameworks. Next, we describe a software architecture and its preliminary implementation supporting the development of quantum programs using symbolic approach, encouraging the functional programming paradigm, and, at the same, time enabling the integration with high-performance and cloud computing. The described software consists of several packages developed to address different needs, but nevertheless sharing common design concepts. We also outline how the presented approach could be used in tasks in quantum software engineering, namely quantum software testing and quantum circuit construction.Comment: 14 pages, contribution to QP2023 Workshop, Programming'23, Tokyo, JP, March 13-17, 202

    An Introduction to Programming for Bioscientists: A Python-based Primer

    Full text link
    Computing has revolutionized the biological sciences over the past several decades, such that virtually all contemporary research in the biosciences utilizes computer programs. The computational advances have come on many fronts, spurred by fundamental developments in hardware, software, and algorithms. These advances have influenced, and even engendered, a phenomenal array of bioscience fields, including molecular evolution and bioinformatics; genome-, proteome-, transcriptome- and metabolome-wide experimental studies; structural genomics; and atomistic simulations of cellular-scale molecular assemblies as large as ribosomes and intact viruses. In short, much of post-genomic biology is increasingly becoming a form of computational biology. The ability to design and write computer programs is among the most indispensable skills that a modern researcher can cultivate. Python has become a popular programming language in the biosciences, largely because (i) its straightforward semantics and clean syntax make it a readily accessible first language; (ii) it is expressive and well-suited to object-oriented programming, as well as other modern paradigms; and (iii) the many available libraries and third-party toolkits extend the functionality of the core language into virtually every biological domain (sequence and structure analyses, phylogenomics, workflow management systems, etc.). This primer offers a basic introduction to coding, via Python, and it includes concrete examples and exercises to illustrate the language's usage and capabilities; the main text culminates with a final project in structural bioinformatics. A suite of Supplemental Chapters is also provided. Starting with basic concepts, such as that of a 'variable', the Chapters methodically advance the reader to the point of writing a graphical user interface to compute the Hamming distance between two DNA sequences.Comment: 65 pages total, including 45 pages text, 3 figures, 4 tables, numerous exercises, and 19 pages of Supporting Information; currently in press at PLOS Computational Biolog

    O paradigma funcional no desenvolvimento Front-End: oportunidades e desafios/ The functional paradigm in Front-End development: opportunities and challenges

    Get PDF
    Este artigo tem o objetivo de explorar as opções dentro do paradigma de programação funcional para o desenvolvimento front-end de aplicações web. Este estudo apresenta os diferentes paradigmas de programação e os frameworks e linguagens disponíveis para a criação de aplicações web interativas dentro do paradigma funcional

    A Glimpse of the Future of Scientific Programming

    Full text link

    Linguagem de programação Ipe: programação puramente funcional para APIs REST

    Get PDF
    TCC (graduação) - Universidade Federal de Santa Catarina, Centro Tecnológico, Ciências da Computação.Grande parte dos produtos comerciais necessitam de um backend. Este trabalho apresenta Ipe, uma linguagem de programação voltada especificamente para desenvolver sistemas backend, com APIs REST, seguindo o paradigma funcional. Com as garantias do paradigma funcional e da tipagem estática, Ipe busca ser uma linguagem simples e fácil de se usar, ao mesmo tempo em que tenta capturar erros em tempo de compilação, diminuindo erros em tempo de execução. Com um compilador escrito em Haskell, Ipe é compilada para código Javascript, e apresenta várias características desejáveis para o desenvolvimento de aplicações backend, como pattern matching, funções puras, tipagem forte e estática, e inferência de tipos.Many commercial products need a backend. This work presents Ipe, a programming language specifically designed to develop backend systems, with REST APIs, following the functional paradigm. With the guarantees of the functional paradigm and static typing, Ipe aims to be a simple and easy to use language, while trying to capture errors at compile time, reducing runtime errors. With a compiler written in Haskell, Ipe is compiled to Javascript, and presents several desirable features for backend development, such as pattern matching, pure functions, strong and static typing, and type inference

    A Computational Science Agenda for Programming Language Research

    Get PDF
    Scientific models are often expressed as large and complicated programs. These programs embody numerous assumptions made by the developer (e.g., for differential equations, the discretization strategy and resolution). The complexity and pervasiveness of these assumptions means that often the only true description of the model is the software itself. This has led various researchers to call for scientists to publish their source code along with their papers. We argue that this is unlikely to be beneficial since it is almost impossible to separate implementation assumptions from the original scientific intent. Instead we advocate higher-level abstractions in programming languages, coupled with lightweight verification techniques such as specification and type systems. In this position paper, we suggest several novel techniques and outline an evolutionary approach to applying these to existing and future models. One-dimensional heat flow is used as an example throughout

    Scientific Programming: The Promises of Typed, Pure, and Lazy Functional Programming: Part II

    Full text link

    MATLAB-Like Scripting of Java Scientific Libraries in ScalaLab

    Get PDF
    corecore