Viviana Bono
Research Subjects
Viviana Bono has a total of 75 co-authors. Here are the top co-authors by number of shared publications:
- Lorenzo Bettini
Dipartimento di Statistica, Informatica, Applicazioni, Università degli Studi di Firenze, Firenze, Italy
18 shared publications Betti Venneri
6 shared publications- Luca Padovani
University of Bologna
6 shared publications Michele Bugliesi
6 shared publications- Betti Venneri
Dipartimento di Sistemi e Informatica, Università di Firenze, Italy
5 shared publications - Mariangiola Dezani-Ciancaglini
Università di Torino
5 shared publications
Latest Publications
- Open Access
- 11 September 2024
- Published by Springer Nature
- p. 226-244
Introducing SWIRL: An Intermediate Representation Language for Scientific Workflows
In the ever-evolving landscape of scientific computing, properly supporting the modularity and complexity of modern scientific applications requires new approaches to workflow execution, like seamless interoperability between different workflow systems, distributed-by-design workflow models, and automatic optimisation of data movements. In order to address this need, this article introduces SWIRL, an intermediate representation language for scientific workflows. In contrast with other product-agnostic workflow languages, SWIRL is not designed for human interaction but to serve as a low-level compilation target for distributed workflow execution plans. The main advantages of SWIRL semantics are low-level primitives based on the send/receive programming model and a formal framework ensuring the consistency of the semantics and the specification of translating workflow models represented by Directed Acyclic Graphs (DAGs) into SWIRL workflow descriptions. Additionally, SWIRL offers rewriting rules designed to optimise execution traces, accompanied by corresponding equivalence. An open-source SWIRL compiler toolchain has been developed using the ANTLR Python3 bindings.
- 11 September 2024
- Published by Springer Nature
- p. 226-244
Open AccessIntroducing SWIRL: An Intermediate Representation Language for Scientific Workflows
In the ever-evolving landscape of scientific computing, properly supporting the modularity and complexity of modern scientific applications requires new approaches to workflow execution, like seamless interoperability between different workflow systems, distributed-by-design workflow models, and automatic optimisation of data movements. In order to address this need, this article introduces SWIRL, an intermediate representation language for scientific workflows. In contrast with other product-agnostic workflow languages, SWIRL is not designed for human interaction but to serve as a low-level compilation target for distributed workflow execution plans. The main advantages of SWIRL semantics are low-level primitives based on the send/receive programming model and a formal framework ensuring the consistency of the semantics and the specification of translating workflow models represented by Directed Acyclic Graphs (DAGs) into SWIRL workflow descriptions. Additionally, SWIRL offers rewriting rules designed to optimise execution traces, accompanied by corresponding equivalence. An open-source SWIRL compiler toolchain has been developed using the ANTLR Python3 bindings.
- Open Access
- 8 February 2023
- Published by MECS Publisher in International Journal of Modern Education and Computer Science
- Vol. 15 (1) , 13-27
Introducing TCD-D for Creativity Assessment: A Mobile App for Educational Contexts
This paper presents the Test of Creativity and Divergent Thinking-Digital (TCD-D) mobile application, a digital version of the Williams Test for assessing creativity through graphic production. The Test of Creativity and Divergent Thinking-Digital is a new, simple and intuitive mobile application developed by a team of psychologists and computer scientists to remain faithful to the paper version of the test but to provide a faster assessment of divergent thinking. In fact, creativity assessment tests are currently still administered in paper form, which requires a lot of time and human resources for scoring, especially when administered to large samples, as is the case in educational studies. Several digital prototypes of creativity assessment instruments have been developed over the past decade, some of which are derived from paper instruments and some of which are completely new. Of all these attempts, no one has yet worked on a digital version of the Williams Test of Creativity and Divergent Thinking, although this instrument is widely used in Europe and Asia. Moreover, of all the prototypes of digital tools in the literature, none has been developed as a mobile app for tablets, a tool very close to the younger generation. The app was developed to provide a quicker and more contemporary assessment that accommodates the technological interests of digital natives through the use of touch in drawing and adds some additional indices to those of the paper tool for assessing fluency, flexibility, originality and creative elaboration. The application for Android tablets speeds up the assessment of divergent thinking and supports the monitoring of creative potential in educational and learning contexts. The paper discusses how the application works, the preferences and opinions of the students who tested it, and the future developments planned for the implementation of the application.
- 8 February 2023
- Published by MECS Publisher in International Journal of Modern Education and Computer Science
- Vol. 15 (1) , 13-27
Open AccessIntroducing TCD-D for Creativity Assessment: A Mobile App for Educational Contexts
This paper presents the Test of Creativity and Divergent Thinking-Digital (TCD-D) mobile application, a digital version of the Williams Test for assessing creativity through graphic production. The Test of Creativity and Divergent Thinking-Digital is a new, simple and intuitive mobile application developed by a team of psychologists and computer scientists to remain faithful to the paper version of the test but to provide a faster assessment of divergent thinking. In fact, creativity assessment tests are currently still administered in paper form, which requires a lot of time and human resources for scoring, especially when administered to large samples, as is the case in educational studies. Several digital prototypes of creativity assessment instruments have been developed over the past decade, some of which are derived from paper instruments and some of which are completely new. Of all these attempts, no one has yet worked on a digital version of the Williams Test of Creativity and Divergent Thinking, although this instrument is widely used in Europe and Asia. Moreover, of all the prototypes of digital tools in the literature, none has been developed as a mobile app for tablets, a tool very close to the younger generation. The app was developed to provide a quicker and more contemporary assessment that accommodates the technological interests of digital natives through the use of touch in drawing and adds some additional indices to those of the paper tool for assessing fluency, flexibility, originality and creative elaboration. The application for Android tablets speeds up the assessment of divergent thinking and supports the monitoring of creative potential in educational and learning contexts. The paper discusses how the application works, the preferences and opinions of the students who tested it, and the future developments planned for the implementation of the application.
- Open Access
- 6 September 2022
- Published by MDPI AG in Information
- Vol. 13 (9) , 419
Local Multi-Head Channel Self-Attention for Facial Expression Recognition
Since the Transformer architecture was introduced in 2017, there has been many attempts to bring the self-attention paradigm in the field of computer vision. In this paper, we propose LHC: Local multi-Head Channel self-attention, a novel self-attention module that can be easily integrated into virtually every convolutional neural network, and that is specifically designed for computer vision, with a specific focus on facial expression recognition. LHC is based on two main ideas: first, we think that in computer vision, the best way to leverage the self-attention paradigm is the channel-wise application instead of the more well explored spatial attention. Secondly, a local approach has the potential to better overcome the limitations of convolution than global attention, at least in those scenarios where images have a constant general structure, as in facial expression recognition. LHC-Net achieves a new state-of-the-art in the FER2013 dataset, with a significantly lower complexity and impact on the “host” architecture in terms of computational cost when compared with the previous state-of-the-art.
- 6 September 2022
- Published by MDPI AG in Information
- Vol. 13 (9) , 419
Open AccessLocal Multi-Head Channel Self-Attention for Facial Expression Recognition
Since the Transformer architecture was introduced in 2017, there has been many attempts to bring the self-attention paradigm in the field of computer vision. In this paper, we propose LHC: Local multi-Head Channel self-attention, a novel self-attention module that can be easily integrated into virtually every convolutional neural network, and that is specifically designed for computer vision, with a specific focus on facial expression recognition. LHC is based on two main ideas: first, we think that in computer vision, the best way to leverage the self-attention paradigm is the channel-wise application instead of the more well explored spatial attention. Secondly, a local approach has the potential to better overcome the limitations of convolution than global attention, at least in those scenarios where images have a constant general structure, as in facial expression recognition. LHC-Net achieves a new state-of-the-art in the FER2013 dataset, with a significantly lower complexity and impact on the “host” architecture in terms of computational cost when compared with the previous state-of-the-art.
- Open Access
- 22 March 2021
- Published by Morressier GmbH
Soundness conditions for big-step semantics
We propose a general proof technique to show that a predicate is \emph{sound}, that is, prevents stuck computation, with respect to a big-step semantics. This result may look surprising, since in big-step semantics there is no difference between non-terminating and stuck computations, hence soundness cannot even be expressed. The key idea is to define constructions yielding an
- 22 March 2021
- Published by Morressier GmbH
Open AccessSoundness conditions for big-step semantics
We propose a general proof technique to show that a predicate is \emph{sound}, that is, prevents stuck computation, with respect to a big-step semantics. This result may look surprising, since in big-step semantics there is no difference between non-terminating and stuck computations, hence soundness cannot even be expressed. The key idea is to define constructions yielding an
- Open Access
- 18 April 2020
- Published by Springer Nature
- Vol. 12075, 169-196
Soundness Conditions for Big-Step Semantics
We propose a general proof technique to show that a predicate is sound, that is, prevents stuck computation, with respect to a big-step semantics. This result may look surprising, since in big-step semantics there is no difference between non-terminating and stuck computations, hence soundness cannot even be expressed. The key idea is to define constructions yielding an extended version of a given arbitrary big-step semantics, where the difference is made explicit. The extended semantics are exploited in the meta-theory, notably they are necessary to show that the proof technique works. However, they remain transparent when using the proof technique, since it consists in checking three conditions on the original rules only, as we illustrate by several examples.
- 18 April 2020
- Published by Springer Nature
- Vol. 12075, 169-196
Open AccessSoundness Conditions for Big-Step Semantics
We propose a general proof technique to show that a predicate is sound, that is, prevents stuck computation, with respect to a big-step semantics. This result may look surprising, since in big-step semantics there is no difference between non-terminating and stuck computations, hence soundness cannot even be expressed. The key idea is to define constructions yielding an extended version of a given arbitrary big-step semantics, where the difference is made explicit. The extended semantics are exploited in the meta-theory, notably they are necessary to show that the proof technique works. However, they remain transparent when using the proof technique, since it consists in checking three conditions on the original rules only, as we illustrate by several examples.
- 18 October 2019
- Published by SAGE Publications in Fundamenta Informaticae
- Vol. 170 (1-3) , 15-38
The Magda Language: Ten Years After
We discuss Magda ten years after its design. Magda is a mixin-oriented programming language and its goal is to improve code modularity and, as a consequence, code reuse. The aim of this paper is to survey Magda and position it in today’s programming
- 18 October 2019
- Published by SAGE Publications in Fundamenta Informaticae
- Vol. 170 (1-3) , 15-38
The Magda Language: Ten Years After
We discuss Magda ten years after its design. Magda is a mixin-oriented programming language and its goal is to improve code modularity and, as a consequence, code reuse. The aim of this paper is to survey Magda and position it in today’s programming
- Open Access
- 5 September 2018
- Published by Centre pour la Communication Scientifique Directe (CCSD) in Logical Methods in Computer Science
- Vol. ume 14, Is
Java & Lambda: a Featherweight Story
We present FJ&$\lambda$, a new core calculus that extends Featherweight Java (FJ) with interfaces, supporting multiple inheritance in a restricted form, $\lambda$-expressions, and intersection types. Our main goal is to formalise how lambdas and intersection types are grafted on Java 8, by studying their properties in a formal setting. We show how intersection types play a significant role in several cases, in particular in the typecast of a $\lambda$-expression and in the typing of conditional expressions. We also embody interface \emph{default methods} in FJ&$\lambda$, since they increase the dynamism of $\lambda$-expressions, by allowing these methods to be called on $\lambda$-expressions. The crucial point in Java 8 and in our calculus is that $\lambda$-expressions can have various types according to the context requirements (target types): indeed, Java code does not compile when $\lambda$-expressions come without target types. In particular, in the operational semantics we must record target types by decorating $\lambda$-expressions, otherwise they would be lost in the runtime expressions. We prove the subject reduction property and progress for the resulting calculus, and we give a type inference algorithm that returns the type of a given program if it is well typed. The design of FJ&$\lambda$ has been driven by the aim of making it a subset of Java 8, while preserving the elegance and compactness of FJ. Indeed, FJ&$\lambda$ programs are typed and behave the same as Java programs.- 5 September 2018
- Published by Centre pour la Communication Scientifique Directe (CCSD) in Logical Methods in Computer Science
- Vol. ume 14, Is
Open AccessJava & Lambda: a Featherweight Story
We present FJ&$\lambda$, a new core calculus that extends Featherweight Java (FJ) with interfaces, supporting multiple inheritance in a restricted form, $\lambda$-expressions, and intersection types. Our main goal is to formalise how lambdas and intersection types are grafted on Java 8, by studying their properties in a formal setting. We show how intersection types play a significant role in several cases, in particular in the typecast of a $\lambda$-expression and in the typing of conditional expressions. We also embody interface \emph{default methods} in FJ&$\lambda$, since they increase the dynamism of $\lambda$-expressions, by allowing these methods to be called on $\lambda$-expressions. The crucial point in Java 8 and in our calculus is that $\lambda$-expressions can have various types according to the context requirements (target types): indeed, Java code does not compile when $\lambda$-expressions come without target types. In particular, in the operational semantics we must record target types by decorating $\lambda$-expressions, otherwise they would be lost in the runtime expressions. We prove the subject reduction property and progress for the resulting calculus, and we give a type inference algorithm that returns the type of a given program if it is well typed. The design of FJ&$\lambda$ has been driven by the aim of making it a subset of Java 8, while preserving the elegance and compactness of FJ. Indeed, FJ&$\lambda$ programs are typed and behave the same as Java programs. - 1 August 2017
- Published by Elsevier in Journal of Logical and Algebraic Methods in Programming
- Vol. 90, 31-49
Data-driven adaptation for smart sessions
- 1 August 2017
- Published by Elsevier in Journal of Logical and Algebraic Methods in Programming
- Vol. 90, 31-49
Data-driven adaptation for smart sessions
- Top Cited PapersOpen Access
- 21 July 2016
- Published by Emerald Publishing in Foundations and Trends® in Programming Languages
- Vol. 3 (2-3) , 95-230
Behavioral Types in Programming Languages
A recent trend in programming language research is to use behavioral type theory to ensure various correctness properties of large-scale, communication-intensive systems. Behavioral types encompass concepts such as interfaces, communication protocols, contracts, and choreography. The successful application of behavioral types requires a solid understanding of several practical aspects, from their representation in a concrete programming language, to their integration with other programming constructs such as methods and functions, to design and monitoring methodologies that take behaviors into account. This survey provides an overview of the state of the art of these aspects, which we summarize as the pragmatics of behavioral types.
- 21 July 2016
- Published by Emerald Publishing in Foundations and Trends® in Programming Languages
- Vol. 3 (2-3) , 95-230
Top Cited PapersOpen AccessBehavioral Types in Programming Languages
A recent trend in programming language research is to use behavioral type theory to ensure various correctness properties of large-scale, communication-intensive systems. Behavioral types encompass concepts such as interfaces, communication protocols, contracts, and choreography. The successful application of behavioral types requires a solid understanding of several practical aspects, from their representation in a concrete programming language, to their integration with other programming constructs such as methods and functions, to design and monitoring methodologies that take behaviors into account. This survey provides an overview of the state of the art of these aspects, which we summarize as the pragmatics of behavioral types.
- Open Access
- 17 March 2015
- Published by Open Publishing Association in Electronic Proceedings in Theoretical Computer Science
- Vol. 177, 65-78
Lucretia — intersection type polymorphism for scripting languages
Scripting code may present maintenance problems in the long run. There is, then, the call for methodologies that make it possible to control the properties of programs written in dynamic languages in an automatic fashion. We introduce Lucretia, a core language with an introspection primitive. Lucretia is equipped with a (retrofitted) static type system based on local updates of types that describe the structure of objects being used. In this way, we deal with one of the most dynamic features of scripting languages, that is, the runtime modification of object interfaces. Judgements in our systems have a Hoare-like shape, as they have a precondition and a postcondition part. Preconditions describe static approximations of the interfaces of visible objects before a certain expression has been executed and postconditions describe them after its execution. The field update operation complicates the issue of aliasing in the system. We cope with it by introducing intersection types in method signatures.Comment: In Proceedings ITRS 2014, arXiv:1503.0437
- 17 March 2015
- Published by Open Publishing Association in Electronic Proceedings in Theoretical Computer Science
- Vol. 177, 65-78
Open AccessLucretia — intersection type polymorphism for scripting languages
Scripting code may present maintenance problems in the long run. There is, then, the call for methodologies that make it possible to control the properties of programs written in dynamic languages in an automatic fashion. We introduce Lucretia, a core language with an introspection primitive. Lucretia is equipped with a (retrofitted) static type system based on local updates of types that describe the structure of objects being used. In this way, we deal with one of the most dynamic features of scripting languages, that is, the runtime modification of object interfaces. Judgements in our systems have a Hoare-like shape, as they have a precondition and a postcondition part. Preconditions describe static approximations of the interfaces of visible objects before a certain expression has been executed and postconditions describe them after its execution. The field update operation complicates the issue of aliasing in the system. We cope with it by introducing intersection types in method signatures.Comment: In Proceedings ITRS 2014, arXiv:1503.0437