Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Nikolaos S. Papaspyrou

dblp:99/2352 · also Nikolaos Papaspyrou · DBLP profile ↗
← Back
21ranked-venue papers
3as first author
1since 2021 · last 2022
0000-0002-1934-7181ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 19 · 3 first-author · 1 since 2021Artificial intelligence and machine learning · 4 · 1 first-authorTheory of computation · 4Applied, interdisciplinary, general and emerging computing · 4 · 1 first-authorDatabases, data management, data science and information retrieval · 2

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
1 paper
Distributed systems · 100%
Software engineering, system software, and programming languages
3 papers
Runtime systems and virtual machines · 56% Programming languages and type systems · 21% Program verification · 18%

Topics — the 7 heaviest of 11, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Distributed systems › distributed programming
actor model
0.312017
Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform · ACM Trans. Program. Lang. Syst. 2017
Distributed systems › distributed system dependability
reliable distributed systems
0.312017
Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform · ACM Trans. Program. Lang. Syst. 2017
Program verification
proof-carrying code
0.122005
A type system for certified binaries · ACM Trans. Program. Lang. Syst. 2005
A type system for certified binaries · POPL 2002
Programming languages and type systems › language implementation
typed intermediate language
0.112005
A type system for certified binaries · ACM Trans. Program. Lang. Syst. 2005
Compilers and program optimization › program transformation
closure conversion
0.012005
A type system for certified binaries · ACM Trans. Program. Lang. Syst. 2005
Programming languages and type systems › program manipulation
continuation-passing style
0.012005
A type system for certified binaries · ACM Trans. Program. Lang. Syst. 2005
Program synthesis and code generation › formal synthesis
verified code generation
0.012002
A type system for certified binaries · POPL 2002

Methods — techniques the papers use, named apart from their topics

partitioning · 0.6chaos monkey testing · 0.6type theory · 0.0proof representation · 0.0
YearPublicationVenuePosition
2022 Coinduction inductively: mechanizing coinductive proofs in Liquid Haskell
abstract
Liquid Haskell is an inductive verifier that cannot reason about codata. In this work we present two alternative approaches, namely indexed and constructive coinduction, to consistently encode coinductive proofs in Liquid Haskell. The intuition is that indices can be used to enforce the base case in the setting of classical logic and the guardedness check in the constructive proofs. We use our encodings to machine check 10 coinductive proofs, about unary and binary predicates on infinite streams and lists, showcasing how an inductive verifier can be used to check coinductive properties of Haskell code.
Lykourgos Mastorou, Nikolaos S. Papaspyrou, Niki Vazou
Haskell2
2017 Stathis Zachos at 70!
Eleni Bakali, Panagiotis Cheilaris, Dimitris Fotakis 0001, Martin Fürer, Costas D. Koutras, Euripides Markou, Christos Nomikos, Aris Pagourtzis, Christos H. Papadimitriou, Nikolaos S. Papaspyrou, Katerina Potika
CIAC10
2017 Concurrency Semantics in Continuation-Passing Style
abstract
We present a denotational semantics designed in continuation-passing style (CPS) for an abstract language providing operators for nondeterministic choice, sequential and parallel composition, and a general mechanism of interaction between multisets of distributed actions. We show that the basic law s of concurrent systems are satisfied in this semantics. Next, by customizing the behavior of continuations we obtain denotational semantics for a couple of concurrent languages and a nature-inspired formalism. The languages discussed include Hoare’s communicating sequential processes (CSP), and two formalisms based on multiparty interactions: a version of CSP extended with communication and synchronization on multiple channels, and a language similar to a process algebra for DNA computing introduced by Cardelli. We accomplish the semantic investigation in the mathematical framework of complete metric spaces.
Eneia Todoran, Nikolaos S. Papaspyrou
Fundam. Informaticae2
2017 Concolic testing for functional languages
Aggelos Giantsios, Nikolaos S. Papaspyrou, Konstantinos Sagonas
Sci. Comput. Program.2
2017 Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform
abstract
Distributed actor languages are an effective means of constructing scalable reliable systems, and the Erlang programming language has a well-established and influential model. While the Erlang model conceptually provides reliable scalability, it has some inherent scalability limits and these force developers to depart from the model at scale. This article establishes the scalability limits of Erlang systems and reports the work of the EU RELEASE project to improve the scalability and understandability of the Erlang reliable distributed actor model. We systematically study the scalability limits of Erlang and then address the issues at the virtual machine, language, and tool levels. More specifically: (1) We have evolved the Erlang virtual machine so that it can work effectively in large-scale single-host multicore and NUMA architectures. We have made important changes and architectural improvements to the widely used Erlang/OTP release. (2) We have designed and implemented Scalable Distributed (SD) Erlang libraries to address language-level scalability issues and provided and validated a set of semantics for the new language constructs. (3) To make large Erlang systems easier to deploy, monitor, and debug, we have developed and made open source releases of five complementary tools, some specific to SD Erlang. Throughout the article we use two case studies to investigate the capabilities of our new technologies and tools: a distributed hash table based Orbit calculation and Ant Colony Optimisation (ACO). Chaos Monkey experiments show that two versions of ACO survive random process failure and hence that SD Erlang preserves the Erlang reliability model. While we report measurements on a range of NUMA and cluster architectures, the key scalability experiments are conducted on the Athos cluster with 256 hosts (6,144 cores). Even for programs with no global recovery data to maintain, SD Erlang partitions the network to reduce network traffic and hence improves performance of the Orbit and ACO benchmarks above 80 hosts. ACO measurements show that maintaining global recovery data dramatically limits scalability; however, scalability is recovered by partitioning the recovery data. We exceed the established scalability limits of distributed Erlang, and do not reach the limits of SD Erlang for these benchmarks at this scale (256 hosts, 6,144 cores).
Philip W. Trinder, Natalia Chechina, Nikolaos S. Papaspyrou, Konstantinos Sagonas, Simon J. Thompson, Stephen Adams 0002, Stavros Aronis, Robert Baker 0001, Eva Bihari, Olivier Boudeville, Francesco Cesarini, Maurizio Di Stefano, Sverker Eriksson, Viktória Fördós, Amir Ghaffari, Aggelos Giantsios, Rickard Green, Csaba Hoch, David Klaftenegger, Huiqing Li, Kenneth Lundin, Kenneth MacKenzie, Katerina Roukounaki, Yiannis Tsiouris, Kjell Winblad
ACM Trans. Program. Lang. Syst.3
2015 Concolic testing for functional languages
abstract
Concolic testing is a software testing technique combining concrete execution of a program (given specific input, along specific paths) with symbolic execution (generating new test inputs that give better path coverage than random test case generation). Concolic testing has so far been applied, mainly at the level of bytecode or assembly code, to programs written in imperative languages that manipulate primitive data types such as integers and arrays. In this paper, we demonstrate its application to a functional programming language core, a subset of the core language of Erlang, that supports pattern matching, structured recursive data types such as lists, recursion and higher-order functions. Moreover, we present CutEr, a tool implementing this testing technique. We describe CutEr's architecture, the challenges that need to be addressed by such a tool, its current limitations, and report some experiences from its use.
Aggelos Giantsios, Nikolaos S. Papaspyrou, Konstantinos Sagonas
PPDP2
2014 Static safety guarantees for a low-level multithreaded language with regions
Prodromos Gerakios, Nikolaos S. Papaspyrou, Konstantinos Sagonas
Sci. Comput. Program.2
2013 Teaching Programming through Problem Solving: The Role of the Programming Language
Nikolaos S. Papaspyrou, Stathis Zachos
FedCSIS1
2013 Compilation to Quantum Circuits for a Language with Quantum Data and Control
Yannis Rouselakis, Nikolaos S. Papaspyrou, Yiannis Tsiouris, Eneia Todoran
FedCSIS2
2013 The Generalized Intensional Transformation for Implementing Lazy Functional Languages
Georgios Fourtounis 0001, Nikolaos S. Papaspyrou, Panos Rondogiannis
PADL2
2011 A Type and Effect System for Implementing Functional Arrays with Destructive Updates
Georgios Korfiatis, Michalis A. Papakyriakou, Nikolaos S. Papaspyrou
FedCSIS3
2011 Memory Safety and Race Freedom in Concurrent Programming Languages with Linear Capabilities
Niki Vazou, Michalis A. Papakyriakou, Nikolaos S. Papaspyrou
FedCSIS3
2011 Dynamic deadlock avoidance in systems code using statically inferred effects
abstract
Deadlocks can have devastating effects in systems code. We have developed a type and effect system that provably avoids them and in this paper we present a tool that uses a sound static analysis to instrument multithreaded C programs and then links these programs with a run-time system that avoids possible deadlocks. In contrast to most other purely static tools for deadlock freedom, our tool does not insist that programs adhere to a strict lock acquisition order or use lock primitives in a block-structured way, thus it is appropriate for systems code and OS applications. We also report some very promising benchmark results which show that all possible deadlocks can automatically be avoided with only a small run-time overhead. More importantly, this is done without having to modify the original source program by altering the order of resource acquisition operations or by adding annotations.
Prodromos Gerakios, Nikolaos S. Papaspyrou, Konstantinos Sagonas, Panagiotis Vekris
PLOS@SOSP2
2005 A type system for certified binaries
abstract
A certified binary is a value together with a proof that the value satisfies a given specification. Existing compilers that generate certified code have focused on simple memory and control-flow safety rather than more advanced properties. In this article, we present a general framework for explicitly representing complex propositions and proofs in typed intermediate and assembly languages. The new framework allows us to reason about certified programs that involve effects while still maintaining decidable typechecking. We show how to integrate an entire proof system (the calculus of inductive constructions) into a compiler intermediate language and how the intermediate language can undergo complex transformations (CPS and closure conversion) while preserving proofs represented in the type system. Our work provides a foundation for the process of automatically generating certified binaries in a type-theoretic framework.
Zhong Shao 0001, Valery Trifonov, Bratin Saha, Nikolaos S. Papaspyrou
ACM Trans. Program. Lang. Syst.4
2004 Automating Standards-Based Courseware Development Using UML
Andreas Papasalouros, Symeon Retalis, Nikolaos S. Papaspyrou
ICWE3
2004 GLU embedded in C++: a marriage between multidimensional and object-oriented programming
abstract
Abstract The embedding of a small but expressive language of multidimensional functional programming in a well known and widely used language of object‐oriented programming leads to the combination of two radically different programming models. In this paper, we formally define the syntax and semantics of GLU♮, which can be thought of as the multidimensional core of Lucid and GLU, and we describe its implementation as a language embedded in C++. With the aid of a few examples, we argue that the marriage of the two programming models is not only compatible and natural, but also that it produces a new and interesting hybrid language. Copyright © 2004 John Wiley & Sons, Ltd.
Nikolaos S. Papaspyrou, Ioannis T. Kassios
Softw. Pract. Exp.1
2003 Modeling learning technology systems as business systems
Paris Avgeriou, Symeon Retalis, Nikolaos S. Papaspyrou
Softw. Syst. Model.3
2002 A type system for certified binaries
abstract
A certified binary is a value together with a proof that the value satisfies a given specification. Existing compilers that generate certified code have focused on simple memory and control-flow safety rather than more advanced properties. In this paper, we present a general framework for explicitly representing complex propositions and proofs in typed intermediate and assembly languages. The new framework
Zhong Shao 0001, Bratin Saha, Valery Trifonov, Nikolaos S. Papaspyrou
POPL4
2000 Continuations for parallel logic programming
abstract
This paper gives denotational models for three logic programming languages of progressive complexity, adopting the \logic programming without logic" approach.The rst language is the control ow k ernel of sequential Prolog, featuring sequential composition and backtracking.A committedchoice concurrent logic language with parallel composition (parallel AND) and don't care nondeterminism is studied next.The third language is the core of Warren's basic Andorra model, combining parallel composition and don't care nondeterminism with two forms of don't know nondeterminism (interpreted as sequential and parallel OR) and favoring deterministic over nondeterministic computation.We s h o w that continuations are a valuable tool in the analysis and design of semantic models for both sequential and parallel logic programming.Instead of using mathematical notation, we use the functional programming language Haskell as a metalanguage for our denotational semantics, and employ monads in order to facilitate the transition from one language under study to another.
Eneia Todoran, Nikolaos S. Papaspyrou
PPDP2
2000 A study of evaluation order semantics in expressions with side effects
abstract
The presence of side effects in even a very simple language of expressions gives rise to a number of semantic questions. The issue of evaluation order becomes a crucial one and, unless a specific order is enforced, the language becomes non-deterministic. In this paper we study the denotational semantics of such a language under a variety of possible evaluation strategies, from simpler to more complex, concluding with unspecified evaluation order, unspecified order of side effects and the mechanism of sequence points that is particular to the ANSI C programming language. In doing so, we adopt a dialect of Haskell as a metalanguage, instead of mathematical notation, and use monads and monad transformers to improve modularity. In this way, only small modifications are required for each transition. The result is a better understanding of different evaluation strategies and a unified way of specifying their semantics. Furthermore, a significant step is achieved towards a complete and accurate semantics for ANSI C.
Nikolaos S. Papaspyrou, Dragan Macos
J. Funct. Program.1
1996 A Logic-Based Framework for Reasoning Support in Software Evolution
Vassilios C. Vescoukis, Nikolaos S. Papaspyrou, Emmanuel Skordalakis
CAiSE2