A Brief Overview of the Pawns Programming Language

Guardat en:
Dades bibliogràfiques
Publicat a:arXiv.org (Sep 5, 2024), p. n/a
Autor principal: Naish, Lee
Publicat:
Cornell University Library, arXiv.org
Matèries:
Accés en línia:Citation/Abstract
Full text outside of ProQuest
Etiquetes: Afegir etiqueta
Sense etiquetes, Sigues el primer a etiquetar aquest registre!

MARC

LEADER 00000nab a2200000uu 4500
001 3101393301
003 UK-CbPIL
022 |a 2331-8422 
035 |a 3101393301 
045 0 |b d20240905 
100 1 |a Naish, Lee 
245 1 |a A Brief Overview of the Pawns Programming Language 
260 |b Cornell University Library, arXiv.org  |c Sep 5, 2024 
513 |a Working Paper 
520 3 |a Pawns is a programming language under development which supports pure functional programming (including algebraic data types, higher order programming and parametric polymorphism) and imperative programming (including pointers, destructive update of shared data structures and global variables), integrated so each can call the other and with purity checked by the compiler. For pure functional code the programmer need not understand the representation of the data structures. For imperative code the representation must be understood and all effects and dependencies must be documented in the code. For example, if a function may update one of its arguments, this must be declared in the function type signature and noted where the function is called. A single update operation may affect several variables due to sharing of representations (pointer aliasing). Pawns code requires all affected variables to be annotated wherever they may be updated and information about sharing to be declared. Annotations are also required where IO or other global variables are used and this must be declared in type signatures as well. Sharing analysis, performed by the compiler, is the key to many aspects of Pawns. It enables us to check that all effects are made obvious in the source code, effects can be encapsulated inside a pure interface and effects can be used safely in the presence of polymorphism. 
653 |a Polymorphism 
653 |a Programming languages 
653 |a Source code 
653 |a Compilers 
653 |a Annotations 
653 |a Functional programming 
653 |a Imperative programming 
653 |a Data structures 
653 |a Representations 
773 0 |t arXiv.org  |g (Sep 5, 2024), p. n/a 
786 0 |d ProQuest  |t Engineering Database 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/3101393301/abstract/embedded/7BTGNMKEMPT1V9Z2?source=fedsrch 
856 4 0 |3 Full text outside of ProQuest  |u http://arxiv.org/abs/2409.03152