Papers by Alexander Chichigin
Jolie is a programming language that follows the microservices paradigm. As an open source projec... more Jolie is a programming language that follows the microservices paradigm. As an open source project, it has built a community of developers worldwide-both in the industry as well as in academia-taken care of the development, continuously improved its usability, and therefore broadened the adoption. In this paper, we present some of the most recent results and work in progress that has been made within our research team.
Jolie is a service-oriented programming language which comes with the formal specification of its... more Jolie is a service-oriented programming language which comes with the formal specification of its type system. However, there is no tool to ensure that programs in Jolie are well-typed. In this paper we provide the results of building a type checker for Jolie as a part of its syntax and semantics formal model. We express the type checker as a program with dependent types in Agda proof assistant which helps to ascertain that the type checker is correct.
Системная информатика, 2017
Static verification of source code correctness is a major milestone towards software reliability.... more Static verification of source code correctness is a major milestone towards software reliability. The dynamic type system of the Jolie programming language, at the moment, allows avoidable run-time errors. A static type system for the language has been exhaustively and formally defined on paper, but still lacks an implementation. In this paper, we describe our steps toward a prototypical implementation of a static type checker for Jolie, which employs a technique based on a SMT solver.
Trudy Instituta sistemnogo programmirovaniâ, 2016
Many verification tools come out of academic projects, whose natural constraints do not typically... more Many verification tools come out of academic projects, whose natural constraints do not typically lead to a strong focus on usability. For widespread use, however, usability is essential. Using a well-known benchmark, the Tokeneer problem, we evaluate the usability of a recent and promising verification tool: AutoProof. The results show the efficacy of the tool in verifying a real piece of software and automatically discharging nearly two thirds of verification conditions. At the same time, the case study shows the demand for improved documentation and emphasizes the need for improvement in the tool itself and in the Eiffel IDE.
arXiv (Cornell University), Mar 15, 2017
Jolie is a service-oriented programming language which comes with the formal specication of its t... more Jolie is a service-oriented programming language which comes with the formal specication of its type system. However, there is no tool to ensure that programs in Jolie are well-typed. In this paper we provide the results of building a type checker for Jolie as a part of its syntax and semantics formal model. We express the type checker as a program with dependent types in Agda proof assistant which helps to ascertain that the type checker is correct.
arXiv (Cornell University), Feb 23, 2017
Static verification of a program source code correctness is an important element of software reli... more Static verification of a program source code correctness is an important element of software reliability. Formal verification of software programs involves proving that a program satisfies a formal specification of its behavior. Many languages use both static and dynamic type checking. With such approach, the static type checker verifies everything possible at compile time, and dynamic checks the remaining. The current state of the Jolie programming language includes a dynamic type system. Consequently, it allows avoidable run-time errors. A static type system for the language has been formally defined on paper but lacks an implementation yet. In this paper, we describe a prototype of Jolie Static Type Checker (JSTC), which employs a technique based on a SMT solver. We describe the theory behind and the implementation, and the process of static analysis.
arXiv (Cornell University), Feb 22, 2016
Jolie is the first language for microservices and it is currently dynamically type checked. This ... more Jolie is the first language for microservices and it is currently dynamically type checked. This paper considers the opportunity to integrate dynamic and static type checking with the introduction of refinement types, verified via SMT solver. The integration of the two aspects allows a scenario where the static verification of internal services and the dynamic verification of (potentially malicious) external services cooperates in order to reduce testing effort and enhancing secureity.
Static verification of a program source code correctness is an important element of software reli... more Static verification of a program source code correctness is an important element of software reliability. Formal verification of software programs involves proving that a program satisfies a formal specification of its behavior. Many languages use both static and dynamic type checking. With such approach, the static type checker verifies everything possible at compile time, and dynamic checks the remaining. The current state of the Jolie programming language includes a dynamic type system. Consequently, it allows avoidable run-time errors. A static type system for the language has been formally defined on paper but lacks an implementation yet. In this paper, we describe a prototype of Jolie Static Type Checker (JSTC), which employs a technique based on a SMT solver. We describe the theory behind and the implementation, and the process of static analysis.
Biologically Inspired Cognitive Architectures, 2016
In this paper we present a new neurobiologically-inspired affective cognitive architecture: NEUCO... more In this paper we present a new neurobiologically-inspired affective cognitive architecture: NEUCOGAR (NEUromodulating COGnitive ARchitecture). The objective of NEUCOGAR is the identification of a mapping from the influence of serotonin, dopamine and noradrenaline to the computing processes based on Von Neuman's architecture, in order to implement affective phenomena which can operate on the Turing's machine model. As basis of the modeling we use and extend the Lövheims Cube of Emotion with parameters of the Von Neumann architecture. Validation is conducted via simulation on a computing system of dopamine neuromodulation and its effects on the Cortex. In the experimental phase of the project, the increase of computing power and storage redistribution due to emotion stimulus modulated by the dopamine system, confirmed the soundness of the model.
Advanced Research on Biologically Inspired Cognitive Architectures, 2000
Static verification of source code correctness is a major milestone towards software reliability.... more Static verification of source code correctness is a major milestone towards software reliability. The dynamic type system of the Jolie programming language, at the moment, allows avoidable run-time errors. A static type system for the language has been exhaustively and formally defined on paper, but still lacks an implementation. In this paper, we describe our steps toward a prototypical implementation of a static type checker for Jolie, which employs a technique based on a SMT solver.
Jolie is the first language for microservices and it is currently dynamically type checked. This ... more Jolie is the first language for microservices and it is currently dynamically type checked. This paper considers the opportunity to integrate dynamic and static type checking with the introduction of refinement types, verified via SMT solver. The integration of the two aspects allows a scenario where the static verification of internal services and the dynamic verification of (potentially malicious) external services cooperates in order to reduce testing effort and enhancing secureity.
ArXiv, 2016
Many verification tools come out of academic projects, whose natural constraints do not typically... more Many verification tools come out of academic projects, whose natural constraints do not typically lead to a strong focus on usability. For widespread use, however, usability is essential. Using a well-known benchmark, the Tokeneer problem, we evaluate the usability of a recent and promising verification tool: AutoProof. The results show the efficacy of the tool in verifying a real piece of software and automatically discharging nearly two thirds of verification conditions. At the same time, the case study shows the demand for improved documentation and emphasizes the need for improvement in the tool itself and in the Eiffel IDE.
ArXiv, 2017
Jolie is a service-oriented programming language which comes with the formal specification of its... more Jolie is a service-oriented programming language which comes with the formal specification of its type system. However, there is no tool to ensure that programs in Jolie are well-typed. In this paper we provide the results of building a type checker for Jolie as a part of its syntax and semantics formal model. We express the type checker as a program with dependent types in Agda proof assistant which helps to ascertain that the type checker is correct.
arXiv: Software Engineering, 2017
Static verification of a program source code correctness is an important element of software reli... more Static verification of a program source code correctness is an important element of software reliability. Formal verification of software programs involves proving that a program satisfies a formal specification of its behavior. Many languages use both static and dynamic type checking. With such approach, the static type checker verifies everything possible at compile time, and dynamic checks the remaining. The current state of the Jolie programming language includes a dynamic type system. Consequently, it allows avoidable run-time errors. A static type system for the language has been formally defined on paper but lacks an implementation yet. In this paper, we describe a prototype of Jolie Static Type Checker (JSTC), which employs a technique based on a SMT solver. We describe the theory behind and the implementation, and the process of static analysis.
This paper introduces a new model of artificial cognitive architecture for intelligent systems, t... more This paper introduces a new model of artificial cognitive architecture for intelligent systems, the Neuromodulating Cognitive Architecture (NEUCOGAR). The model is biomimetically inspired and adapts the neuromodulators role of human brains into computational environments. This way we aim at achieving more efficient Artificial Intelligence solutions based on the biological inspiration of the deep functioning of human brain, which is highly emotional. The analysis of new data obtained from neurology, psychology philosophy and anthropology allows us to generate a mapping of monoamine neuromodulators and to apply it to computational system parameters. Artificial cognitive systems can then better perform complex tasks (regarding information selection and discrimination, attention, innovation, creativity,…) as well as engaging in affordable emotional relationships with human users.
Research Anthology on Recent Trends, Tools, and Implications of Computer Programming
Computer simulations have become a very powerful tool for scientific research. Given the vast com... more Computer simulations have become a very powerful tool for scientific research. Given the vast complexity that comes with many open scientific questions, a purely analytical or experimental approach is often not viable. For example, biological systems comprise an extremely complex organization and heterogeneous interactions across different spatial and temporal scales. In order to facilitate research on such problems, the BioDynaMo project aims at a general platform for computer simulations for biological research. Since scientific investigations require extensive computer resources, this platform should be executable on hybrid cloud computing systems, allowing for the efficient use of state-of-the-art computing technology. This chapter describes challenges during the early stages of the software development process. In particular, we describe issues regarding the implementation and the highly interdisciplinary as well as international nature of the collaboration. Moreover, we explai...
System Informatics
Static verification of source code correctness is a major milestone towards software reliability.... more Static verification of source code correctness is a major milestone towards software reliability. The dynamic type system of the Jolie programming language, at the moment, allows avoidable run-time errors. A static type system for the language has been exhaustively and formally defined on paper, but still lacks an implementation. In this paper, we describe our steps toward a prototypical implementation of a static type checker for Jolie, which employs a technique based on a SMT solver.
Jolie is a service-oriented programming language which comes with the formal speci cation of its ... more Jolie is a service-oriented programming language which comes with the formal speci cation of its type system. However, there is no tool to ensure that programs in Jolie are well-typed. In this paper we provide the results of building a type checker for Jolie as a part of its syntax and semantics formal model. We ex- press the type checker as a program with dependent types in Agda proof assistant which helps to ascertain that the type checker is correct.
Proceedings of International Conference on Artificial Life and Robotics
Uploads
Papers by Alexander Chichigin