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.

Samuel Vivien

dblp:300/9708 · DBLP profile ↗
← Back
2ranked-venue papers
1as first author
2since 2021 · last 2023
0000-0003-4224-6132ORCID · corroborated

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

Software engineering, systems software and programming languages · 1 · 1 since 2021

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.

Software engineering, system software, and programming languages
1 paper
Programming languages and type systems · 62% Compilers and program optimization · 38%

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

TopicWeightPapersLastEvidence papers
Compilers and program optimization
compiler optimization
0.712023
PureCake: A Verified Compiler for a Lazy Functional Language · Proc. ACM Program. Lang. 2023
Programming languages and type systems
functional language
0.712023
PureCake: A Verified Compiler for a Lazy Functional Language · Proc. ACM Program. Lang. 2023
Programming languages and type systems › functional language
lazy functional languages
0.712023
PureCake: A Verified Compiler for a Lazy Functional Language · Proc. ACM Program. Lang. 2023
Compilers and program optimization
verified compilation
0.712023
PureCake: A Verified Compiler for a Lazy Functional Language · Proc. ACM Program. Lang. 2023
Programming languages and type systems
equational reasoning
0.212023
PureCake: A Verified Compiler for a Lazy Functional Language · Proc. ACM Program. Lang. 2023
Programming languages and type systems › type systems › polymorphism
hindley-milner type system
0.212023
PureCake: A Verified Compiler for a Lazy Functional Language · Proc. ACM Program. Lang. 2023
Programming languages and type systems › language semantics › formal semantics
operational semantics
0.212023
PureCake: A Verified Compiler for a Lazy Functional Language · Proc. ACM Program. Lang. 2023
Programming languages and type systems
type systems
0.212023
PureCake: A Verified Compiler for a Lazy Functional Language · Proc. ACM Program. Lang. 2023

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

interactive theorem proving · 0.7HOL4 · 0.7
YearPublicationVenuePosition
2023 PureCake: A Verified Compiler for a Lazy Functional Language
abstract
We present PureCake, a mechanically-verified compiler for PureLang, a lazy, purely functional programming language with monadic effects. PureLang syntax is Haskell-like and indentation-sensitive, and its constraint-based Hindley-Milner type system guarantees safe execution. We derive sound equational reasoning principles over its operational semantics, dramatically simplifying some proofs. We prove end-to-end correctness for the compilation of PureLang down to machine code---the first such result for any lazy language---by targeting CakeML and composing with its verified compiler. Multiple optimisation passes are necessary to handle realistic lazy idioms effectively. We develop PureCake entirely within the HOL4 interactive theorem prover.
Hrutvik Kanabar, Samuel Vivien, Oskar Abrahamsson, Magnus O. Myreen, Michael Norrish, Johannes Åman Pohjola, Riccardo Zanetti
Proc. ACM Program. Lang.2
2022 Parallel integer multiplication
abstract
Multiplication is a fundamental step in many algorithms. If the multiplication of two integers of n words has a complexity of M(n), divisions and squares can be computed in O(M(n)) as well and the greatest common divisor can be computed in O(M(n)logn). Thus being able to have a small value for M(n) is extremely important.To this day, the best known algorithm for reachable values is the Schönhage-Strassen algorithm which is implemented by a few arithmetic libraries. Asymptotically faster algorithms exist, however no computer is able to hold numbers big enough for those algorithms to outrun Schönhage-Strassen.The GNU Multiple Precision (GMP) library has a sequential-only implementation of Schönhage-Strassen.However some algorithms contains a step which is a single big multiplication. Thus when trying to parallelize such an algorithm, one requires a parallel algorithm for multiplication. An example of such an algorithm is the batch factorization for Number Field Sieve. Thus people trying to implement a parallel version of such algorithms need to find an arithmetic library that implements a parallel integer multiplication.An example of such a library is the Flint (Fast LIbrary for Number Theory) library that contains a parallel implementation of Schönhage-Strassen. In this article we present an implementation of Schönhage-Strassen, that reaches a speedup of 20 for the multiplication of two integers of 107words of 64 bits using a Xeon Gold with 32 cores.
Samuel Vivien
PDP1