{"title":"Asynchronous Sessions with Implicit Functions and Messages","authors":"A. Jeffery, Martin Berger","doi":"10.1109/TASE.2018.00010","DOIUrl":"https://doi.org/10.1109/TASE.2018.00010","url":null,"abstract":"Session types are a well-established approach to ensuring protocol conformance and the absence of communication errors such as deadlocks in message passing systems. Haskell introduced implicit parameters, Scala popularised this feature and recently gave implicit types first-class status, yielding an expressive tool for handling context dependencies in a type-safe yet terse way. We ask: can type-safe implicit functions be generalised from Scala's sequential setting to message passing computation? We answer this question in the affirmative by presenting the first concurrent functional language with implicit message passing. The key idea is to generalise the concept of an implicit function to an implicit message, its concurrent analogue. Our language extends Gay and Vasconcelos's calculus of linear types for asynchronous sessions (LAST) with implicit functions and messages. We prove the resulting system sound by translation into LAST.","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127015223","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A Fully Abstract Encoding for Sub Asynchronous Pi Calculus","authors":"Wenjun Du, Zhengfeng Yang, Huibiao Zhu","doi":"10.1109/TASE.2018.00011","DOIUrl":"https://doi.org/10.1109/TASE.2018.00011","url":null,"abstract":"The paper investigates a notion of sub asynchronous pi-calculus in asynchronous communication. The emphasises of the research are the basic operation and encoding theory of this novel subcalculus. We focus on behavioural equivalences, accurately on barbed congruence and bisimilarity. The congruence of bisimilarity and characterisation of barbed congruence in sub asynchronous pi-calculus are novel and directly proved. The encoding from pi-calculus to sub asynchronous pi-calculus is validated to be complete and sound. Consequently, the results in this paper bring out theoretical foundations for constructing fully abstract encodings from synchronous to asynchronous.","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"84 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121221802","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Towards a Program Logic for C11 Release-Sequences","authors":"Mengda He, S. Qin, J. Ferreira","doi":"10.1109/TASE.2018.00012","DOIUrl":"https://doi.org/10.1109/TASE.2018.00012","url":null,"abstract":"By accepting order weakening for memory operations, the C11 memory model allows C/C++ programs to take advantage of modern hardware architectures, where weak/relaxed memory models are now the norm. However, the weakened C11 memory model introduces many complex and counterintuitive behaviours, rendering it more difficult for people to understand or reason about concurrent C11 programs. Several program logics (RSL, GPS, FSL, GPS+) have been proposed over the last few years to support formal reasoning for C11 programs, but each of them deals with only a specific subset of C11 programs, mainly due to the high complexity of the weakened memory model. Notably none of these program logics supports the reasoning of release-sequences - a highly flexible synchronisation mechanism in C11. Very recently, Doko and Vafeiadis propose a way in their FSL++ logic to reason about C11 programs using release-sequences, but their solution is restricted to those scenarios where only atomic update operations are between the release head and the receiver. In this paper we propose a new program logic that offers full support for reasoning about C11 programs using release-sequences. Our proposed logic is built on top of our previous program logic GPS+, but with much finer control over the resource transmission by introducing restricted-shareable assertions and an enhanced protocol system. We also illustrate our approach by verifying release-sequence programs that existing logics would not be able to.","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132212902","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"[Title page i]","authors":"","doi":"10.1109/tase.2018.00001","DOIUrl":"https://doi.org/10.1109/tase.2018.00001","url":null,"abstract":"","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"1 5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134494179","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Decomposing Models Through Dependency Graphs","authors":"Qin Ma, Pierre Kelsen","doi":"10.1109/TASE.2018.00026","DOIUrl":"https://doi.org/10.1109/TASE.2018.00026","url":null,"abstract":"In Model-Driven Engineering (MDE), models are the primary artifacts of software development life cycles. Being an abstraction of the real systems, models are generally believed to be less complex and better suited for developing, comprehending, communicating, and analyzing systems. However, such an advantage is decreasing with the tendency of models themselves getting more and more complex. In this paper we propose a model decomposition technique for reducing model size and consequently complexity by exploiting the notion of dependency graphs. Compared to its predecessor, this new model decomposition technique is more effective in terms of both the number of derived sub-models (more), the size of sub-models (finer), and the quality of sub-models (better). We demonstrate the improved effectiveness by applying both the previous and the new algorithm to a common example and comparing the results.","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134441994","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Decomposition and Composition of Sequence Diagrams","authors":"Xiaofei Yu, Jianmin Jiang, Zhong Hong","doi":"10.1109/TASE.2018.00018","DOIUrl":"https://doi.org/10.1109/TASE.2018.00018","url":null,"abstract":"As a semi-formal model, a UML sequence diagram can be widely useful for modelling and analyzing functional behaviors of a developing software system. However, reasoning about decomposition and composition of sequence diagrams has not been addressed adequately. The traditional decomposition method is based on the ideas from a global system to local components, and local components are recomposed into the whole system according to communication assumptions or other mechanisms. In this paper, we propose an event-based formal semantics for sequence diagrams and present a new functional decomposition approach based on sequence diagrams. The new decomposition idea is from a global system to global subsystems. Under the decomposition method global subsystems can be recomposed into the global system using the composition operation called union without necessarily considering assumptions such as communication.","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126065637","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"On Syntactic and Semantic Dependencies in Service-Oriented Architectures","authors":"Diego Marmsoler","doi":"10.1109/TASE.2018.00025","DOIUrl":"https://doi.org/10.1109/TASE.2018.00025","url":null,"abstract":"In service oriented architectures, components provide services on their output ports and consume services from other components on their input ports. Thereby, a component is said to depend on another component if the former consumes a service provided by the latter. This notion of dependency (which we call syntactic dependency) is used by many architecture analysis tools as a measure for system maintainability. With this paper, we introduce a weaker notion of dependency, still sufficient, however, to guarantee semantic independence between components. Thereby, we discover the concepts of weak and strong semantic dependency and prove that strong semantic dependency indeed implies syntactic dependency. Our alternative notion of dependency paves the way to more precise dependency analysis tools. Moreover, our results about the different types of dependencies can be used for the verification of semantic independence.","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126996410","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A Taxonomy of Code Changes Occurring within a Statement or a Signature","authors":"Chunhua Yang, E. J. Whitehead","doi":"10.1109/TASE.2018.00020","DOIUrl":"https://doi.org/10.1109/TASE.2018.00020","url":null,"abstract":"We propose a taxonomy of code changes at a granularity finer than the statement level. It classifies changes that occur within a statement or signature. We firstly define the changes based on the proposed operations on the tree of the statement or signature. Then, we classify the changes according to action type, entity kind, element kind and pattern kind. Based on the current implementation, we applied it to four open Java projects. Through the case study, we validated that the taxonomy can classify changes in all the modified statements and signatures. And, we checked the proportions of change patterns. Furthermore, we demonstrated that it is easy to find out the rename-induced statement updates with the help of the taxonomy. As a result, this taxonomy can be used for further change understanding and change analysis.","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127840945","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Verifying Graph Transformations with Guarded Logics","authors":"J. H. Brenas, R. Echahed, M. Strecker","doi":"10.1109/TASE.2018.00024","DOIUrl":"https://doi.org/10.1109/TASE.2018.00024","url":null,"abstract":"We consider the problem of verifying graph transformations described by an imperative programming language. This question is particularly relevant for transformation of knowledge bases. We will argue in this paper that previous proof approaches based on dedicated Description Logics were technically complex and often inappropriate for reasoning about preservation of structure of knowledge bases. For these reasons, we explore here an assertion formalism based on the Guarded Fragment of predicate logic, which provides a homogeneous framework. Based on a formal semantics of our transformation language, we show how to extract proof obligations from annotated programs and how to obtain decidable correctness problems.","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122040183","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Modeling and Verification of NLSR Protocol using UPPAAL","authors":"Yuan Fei, Huibiao Zhu, X. Li","doi":"10.1109/TASE.2018.00022","DOIUrl":"https://doi.org/10.1109/TASE.2018.00022","url":null,"abstract":"Named Data Networking (NDN) is a new promising architecture of information-centric networking, which supports multicast of data and adopts the publish/subscribe model in the network. NDN could not reuse the existing routing protocols designed for the IP architecture due to their fundamental difference of design. As a result, the Named-data Link State Routing (NLSR) protocol has been proposed for NDN. At the heart of the NLSR protocol is to disseminate Link State Advertisements (LSAs) to both build a network topology and distribute all the name prefixes to every node in the network. Each router stores the latest version of the LSAs in a Link State Database (LSDB). In this paper, we make the very first attempt to formally model and verify a few fundamental properties of the NLSR protocol using UPPAAL, a model checker for modeling and verifying real-time systems as networks of timed-automata. We validate our model by running the simulator in UPPAAL and verify crucial properties of the protocol under simple yet non-trivial test configurations differing in network topologies and message exchanging scenarios. We capture two situations that may risk synchronization failures and discuss some countermeasures. We also testify the proposal by verifying the revised model with addressing the design issues. We hope that our study and preliminary results would help enhancing the adaptability and robustness of NLSR protocol.","PeriodicalId":123441,"journal":{"name":"2018 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124450789","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}