In this paper, we present an approach for programming microcontrollers that provides more expressivity and safety than the low-level language approach traditionally used to program such devices. To this end, we provide various abstraction layers (abstraction of the microcontroller, of the electronic components of the circuit, and of concurrency) which, while being adapted to the scarce resources of the hardware, offer high-level programming traits for the development of embedded applications. The various presented abstractions make use of an OCaml virtual machine, called OMicroB, which is able to run on devices with limited resources. These take advantage of the expressivity and safety of the OCaml language (parameterized modules, advanced type system). Its extensibility allows to define a synchronous extension to manage concurrency while keeping a good level of efficiency at execution. We illustrate the value of our work on both entertainment applications and embedded software examples.
{"title":"Programming microcontrollers through high-level abstractions: The OMicroB project","authors":"Steven Varoumas , Basile Pesin , Benoît Vaugon , Emmanuel Chailloux","doi":"10.1016/j.cola.2023.101228","DOIUrl":"10.1016/j.cola.2023.101228","url":null,"abstract":"<div><p>In this paper, we present an approach for programming microcontrollers that provides more expressivity and safety than the low-level language approach traditionally used to program such devices. To this end, we provide various abstraction layers (abstraction of the microcontroller, of the electronic components of the circuit, and of concurrency) which, while being adapted to the scarce resources of the hardware, offer high-level programming traits for the development of embedded applications. The various presented abstractions make use of an OCaml virtual machine, called OMicroB, which is able to run on devices with limited resources. These take advantage of the expressivity and safety of the OCaml language (parameterized modules, advanced type system). Its extensibility allows to define a synchronous extension to manage concurrency while keeping a good level of efficiency at execution. We illustrate the value of our work on both entertainment applications and embedded software examples.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"77 ","pages":"Article 101228"},"PeriodicalIF":2.2,"publicationDate":"2023-08-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49484389","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-08-01DOI: 10.1016/j.cola.2023.101223
Istvan David , Hans Vangheluwe , Eugene Syriani
Inconsistencies between stakeholders’ views pose a severe challenge in the engineering of complex systems. The past decades have seen a vast number of sophisticated inconsistency management techniques being developed. These techniques build on the common idea of “managing consistency instead of removing inconsistency”, as put forward by Finkelstein. While it is clear what and how to do about inconsistencies, it is less clear why inconsistency is particularly useful. After all, it is the correctness of the system that should matter, as correctness is the end-user-facing quality of the product. In this paper, we analyze this question by investigating the relationship between (in)consistency and (in)correctness. We formally prove that, contrary to intuition, consistency does not imply correctness. However, consistency is still a good heuristic for eventual correctness. We elaborate on the consequences of this assertion and provide pointers as to how to make use of it in the next generation of inconsistency management techniques.
{"title":"Model consistency as a heuristic for eventual correctness","authors":"Istvan David , Hans Vangheluwe , Eugene Syriani","doi":"10.1016/j.cola.2023.101223","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101223","url":null,"abstract":"<div><p>Inconsistencies between stakeholders’ views pose a severe challenge in the engineering of complex systems. The past decades have seen a vast number of sophisticated inconsistency management techniques being developed. These techniques build on the common idea of “managing consistency instead of removing inconsistency”, as put forward by Finkelstein. While it is clear what and how to do about inconsistencies, it is less clear why inconsistency is particularly useful. After all, it is the correctness of the system that should matter, as correctness is the end-user-facing quality of the product. In this paper, we analyze this question by investigating the relationship between (in)consistency and (in)correctness. We formally prove that, contrary to intuition, consistency does not imply correctness. However, consistency is still a good heuristic for eventual correctness. We elaborate on the consequences of this assertion and provide pointers as to how to make use of it in the next generation of inconsistency management techniques.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101223"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891919","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-08-01DOI: 10.1016/j.cola.2023.101209
Joan Giner-Miguelez , Abel Gómez , Jordi Cabot
Datasets are essential for training and evaluating machine learning (ML) models. However, they are also at the root of many undesirable model behaviors, such as biased predictions. To address this issue, the machine learning community is proposing a data-centric cultural shift, where data issues are given the attention they deserve and more standard practices for gathering and describing datasets are discussed and established.
So far, these proposals are mostly high-level guidelines described in natural language and, as such, they are difficult to formalize and apply to particular datasets. In this sense, and inspired by these proposals, we define a new domain-specific language (DSL) to precisely describe machine learning datasets in terms of their structure, provenance, and social concerns. We believe this DSL will facilitate any ML initiative to leverage and benefit from this data-centric shift in ML (e.g., selecting the most appropriate dataset for a new project or better replicating other ML results). The DSL is implemented as a Visual Studio Code plugin, and it has been published under an open-source license.
数据集对于训练和评估机器学习(ML)模型至关重要。然而,它们也是许多不受欢迎的模型行为的根源,比如有偏见的预测。为了解决这个问题,机器学习社区正在提出一种以数据为中心的文化转变,在这种文化转变中,数据问题得到了应有的关注,并讨论和建立了更多收集和描述数据集的标准实践。到目前为止,这些建议大多是用自然语言描述的高级指导方针,因此,它们很难形式化并应用于特定的数据集。从这个意义上说,受这些建议的启发,我们定义了一种新的领域特定语言(DSL),以精确地描述机器学习数据集的结构、来源和社会关注。我们相信这个DSL将促进任何ML计划利用并受益于ML中这种以数据为中心的转变(例如,为新项目选择最合适的数据集或更好地复制其他ML结果)。DSL是作为Visual Studio Code插件实现的,并且在开源许可下发布。
{"title":"A domain-specific language for describing machine learning datasets","authors":"Joan Giner-Miguelez , Abel Gómez , Jordi Cabot","doi":"10.1016/j.cola.2023.101209","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101209","url":null,"abstract":"<div><p>Datasets are essential for training and evaluating machine learning (ML) models. However, they are also at the root of many undesirable model behaviors, such as biased predictions. To address this issue, the machine learning community is proposing a <em>data-centric cultural shift</em>, where data issues are given the attention they deserve and more standard practices for gathering and describing datasets are discussed and established.</p><p>So far, these proposals are mostly high-level guidelines described in natural language and, as such, they are difficult to formalize and apply to particular datasets. In this sense, and inspired by these proposals, we define a new domain-specific language (DSL) to precisely describe machine learning datasets in terms of their structure, provenance, and social concerns. We believe this DSL will facilitate any ML initiative to leverage and benefit from this data-centric shift in ML (e.g., selecting the most appropriate dataset for a new project or better replicating other ML results). The DSL is implemented as a Visual Studio Code plugin, and it has been published under an open-source license.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101209"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891921","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-08-01DOI: 10.1016/j.cola.2023.101220
Nelson Gregório , João Bispo , João Paulo Fernandes , Sérgio Queiroz de Medeiros
Energy efficiency is a non-functional requirement that developers must consider, particularly when building software for battery-operated devices like mobile ones: a long-lasting battery is an essential requirement for an enjoyable user experience.
In previous studies, it has been shown that many mobile applications include inefficiencies that cause battery to be drained faster than necessary. Some of these inefficiencies result from software patterns that have been catalogued, and for which more energy-efficient alternatives are also known.
The existing catalogues, however, assume as a fundamental requirement that one has access to the source code of an application in order to be able to analyse it. This requirement makes independent energy analysis challenging, or even impossible, e.g. for a mobile user or, most significantly, an App Store trying to provide information on how efficient an application being submitted for publication is.
We study the viability of looking for known energy patterns in applications by decompiling them and analysing the resulting code. For this, we decompiled and analysed 420 open-source applications by extending an existing tool, which is now capable of transparently decompiling and analysing android applications. With the collected data, we performed a comparative study of the presence of four energy patterns between the source code and the decompiled code.
We performed two types of analysis: (i) comparing the total number of energy pattern detections; (ii) comparing the similarity between energy pattern detections. When comparing the total number of detections in source code against decompiled code, we found that 79.29% of the applications reported the same number of energy pattern detections.
To test the similarity between source code and APKs, we calculated, for each application, a similarity score based on our four implemented detectors. Of all applications, 35.76% achieved a perfect similarity score of 4, and 89.40% got a score of 3 or more out of 4. Furthermore, only two applications got a score of 0.
When viewed in tandem, the results of the two analyses we performed point in a promising direction. They provide initial evidence that static analysis techniques, typically used in source code, can be a viable method to inspect APKs when access to source code is restricted, and further research in this area is worthwhile.
{"title":"E-APK: Energy pattern detection in decompiled android applications","authors":"Nelson Gregório , João Bispo , João Paulo Fernandes , Sérgio Queiroz de Medeiros","doi":"10.1016/j.cola.2023.101220","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101220","url":null,"abstract":"<div><p>Energy efficiency is a non-functional requirement that developers must consider, particularly when building software for battery-operated devices like mobile ones: a long-lasting battery is an essential requirement for an enjoyable user experience.</p><p>In previous studies, it has been shown that many mobile applications include inefficiencies that cause battery to be drained faster than necessary. Some of these inefficiencies result from software patterns that have been catalogued, and for which more energy-efficient alternatives are also known.</p><p>The existing catalogues, however, assume as a fundamental requirement that one has access to the source code of an application in order to be able to analyse it. This requirement makes independent energy analysis challenging, or even impossible, e.g. for a mobile user or, most significantly, an App Store trying to provide information on how efficient an application being submitted for publication is.</p><p>We study the viability of looking for known energy patterns in applications by decompiling them and analysing the resulting code. For this, we decompiled and analysed 420 open-source applications by extending an existing tool, which is now capable of transparently decompiling and analysing android applications. With the collected data, we performed a comparative study of the presence of four energy patterns between the source code and the decompiled code.</p><p>We performed two types of analysis: (i) comparing the total number of energy pattern detections; (ii) comparing the similarity between energy pattern detections. When comparing the total number of detections in source code against decompiled code, we found that 79.29% of the applications reported the same number of energy pattern detections.</p><p>To test the similarity between source code and APKs, we calculated, for each application, a similarity score based on our four implemented detectors. Of all applications, 35.76% achieved a perfect similarity score of 4, and 89.40% got a score of 3 or more out of 4. Furthermore, only two applications got a score of 0.</p><p>When viewed in tandem, the results of the two analyses we performed point in a promising direction. They provide initial evidence that static analysis techniques, typically used in source code, can be a viable method to inspect APKs when access to source code is restricted, and further research in this area is worthwhile.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101220"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891923","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-08-01DOI: 10.1016/j.cola.2023.101226
Jérôme Pfeiffer , Bernhard Rumpe , David Schmalzing , Andreas Wortmann
Efficiently engineering modeling languages demands their reuse through composition. Research in language engineering has produced many different operators to reuse and compose languages and language parts. Unfortunately, these operate on different dimensions of languages, produce diverse results, and are distributed across various technological spaces and publications, which hampers understanding the state of language composition for researchers and practitioners. To mitigate this, we report the results of a literature review on modeling language composition operators. In this review, we identify operators, their properties, and supported language dimensions, and relate them to categories of language composition. Through this, our survey draws a new, detailed map of modeling language composition operators that can guide researchers in software language engineering in identifying uncharted territory and practitioners in employing the most suitable composition operators.
{"title":"Composition operators for modeling languages: A literature review","authors":"Jérôme Pfeiffer , Bernhard Rumpe , David Schmalzing , Andreas Wortmann","doi":"10.1016/j.cola.2023.101226","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101226","url":null,"abstract":"<div><p>Efficiently engineering modeling languages demands their reuse through composition. Research in language engineering has produced many different operators to reuse and compose languages and language parts. Unfortunately, these operate on different dimensions of languages, produce diverse results, and are distributed across various technological spaces and publications, which hampers understanding the state of language composition for researchers and practitioners. To mitigate this, we report the results of a literature review on modeling language composition operators. In this review, we identify operators, their properties, and supported language dimensions, and relate them to categories of language composition. Through this, our survey draws a new, detailed map of modeling language composition operators that can guide researchers in software language engineering in identifying uncharted territory and practitioners in employing the most suitable composition operators.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101226"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891924","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-08-01DOI: 10.1016/j.cola.2023.101222
Severino F. Galán
Fractals are a family of shapes formed by irregular and fragmented patterns. They can be classified into two main groups: geometric and algebraic. Whereas the former are characterized by a fixed geometric replacement rule, the latter are defined by a recurrence function in the complex plane. The classical method for visualizing algebraic fractals considers the sequence of complex numbers originated from each point in the complex plane. Thus, each original point is colored depending on whether its generated sequence escapes to infinity. The present work introduces a novel visualization method for algebraic fractals. This method colors each original point by taking into account the complex number with minimum modulus within its generated sequence. The advantages of the novel method are twofold: on the one hand, it preserves the fractal view that the classical method offers of the escape set boundary and, on the other hand, it additionally provides interesting visual details of the prisoner set (the complement of the escape set). The novel method is comparatively evaluated with other classical and non-classical visualization methods of fractals, giving rise to aesthetic views of prisoner sets.
{"title":"Minimum modulus visualization of algebraic fractals","authors":"Severino F. Galán","doi":"10.1016/j.cola.2023.101222","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101222","url":null,"abstract":"<div><p>Fractals are a family of shapes formed by irregular and fragmented patterns. They can be classified into two main groups: geometric and algebraic. Whereas the former are characterized by a fixed geometric replacement rule, the latter are defined by a recurrence function in the complex plane. The classical method for visualizing algebraic fractals considers the sequence of complex numbers originated from each point in the complex plane. Thus, each original point is colored depending on whether its generated sequence escapes to infinity. The present work introduces a novel visualization method for algebraic fractals. This method colors each original point by taking into account the complex number with minimum modulus within its generated sequence. The advantages of the novel method are twofold: on the one hand, it preserves the fractal view that the classical method offers of the escape set boundary and, on the other hand, it additionally provides interesting visual details of the prisoner set (the complement of the escape set). The novel method is comparatively evaluated with other classical and non-classical visualization methods of fractals, giving rise to aesthetic views of prisoner sets.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101222"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891920","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-08-01DOI: 10.1016/j.cola.2023.101227
Amleto Di Salle , Ludovico Iovino , Alfonso Pierantonio , Juha-Pekka Tolvanen
{"title":"Introduction to the special issue on foundations and practice of visual modeling (FPVM)","authors":"Amleto Di Salle , Ludovico Iovino , Alfonso Pierantonio , Juha-Pekka Tolvanen","doi":"10.1016/j.cola.2023.101227","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101227","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101227"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891922","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-08-01DOI: 10.1016/j.cola.2023.101217
Francisco Martínez-Lasaca , Pablo Díez , Esther Guerra , Juan de Lara
There is an increasing demand nowadays for low-code development platforms (LCDPs). As they rely heavily on graphical languages rather than writing code, these platforms enable citizen developers to participate in software development. However, creating new LCDPs is very costly, since it requires building support for graphical modelling and its integration with services like model validation, recommendation systems, or code generation. While Model-driven Engineering (MDE) has developed technologies to create these components, most of them are not cloud-based, as required by LCDPs. In particular, a cloud-based graphical workbench capable of providing the scalability required by industrial applications and adequately supporting technological heterogeneity is currently missing.
To fill this gap we introduce Dandelion, a cloud-based graphical language workbench for LCDPs built following an MDE approach. The tool handles model heterogeneity by using a harmonising meta-model to uniformly represent models from diverse technologies, and supports a customisable level of conformance between models and meta-models. Scalability is addressed by persisting models in a distributed, highly flexible database whose infrastructure is designed to conform to the harmonising meta-model, thus favouring model retrieval. Additionally, a customisable scalability component is introduced for lazy model loading.
This paper describes the concepts and principles behind the tool design and reports on an evaluation on large synthetic process mining models, and on domain-specific languages and large industrial models used within the UGROUND company, showing promising results.
{"title":"Dandelion: A scalable, cloud-based graphical language workbench for industrial low-code development","authors":"Francisco Martínez-Lasaca , Pablo Díez , Esther Guerra , Juan de Lara","doi":"10.1016/j.cola.2023.101217","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101217","url":null,"abstract":"<div><p>There is an increasing demand nowadays for low-code development platforms (LCDPs). As they rely heavily on graphical languages rather than writing code, these platforms enable citizen developers to participate in software development. However, creating new LCDPs is very costly, since it requires building support for graphical modelling and its integration with services like model validation, recommendation systems, or code generation. While Model-driven Engineering (MDE) has developed technologies to create these components, most of them are not cloud-based, as required by LCDPs. In particular, a cloud-based graphical workbench capable of providing the scalability required by industrial applications and adequately supporting technological heterogeneity is currently missing.</p><p>To fill this gap we introduce <em>Dandelion</em>, a cloud-based graphical language workbench for LCDPs built following an MDE approach. The tool handles model heterogeneity by using a harmonising meta-model to uniformly represent models from diverse technologies, and supports a customisable level of conformance between models and meta-models. Scalability is addressed by persisting models in a distributed, highly flexible database whose infrastructure is designed to conform to the harmonising meta-model, thus favouring model retrieval. Additionally, a customisable scalability component is introduced for lazy model loading.</p><p>This paper describes the concepts and principles behind the tool design and reports on an evaluation on large synthetic process mining models, and on domain-specific languages and large industrial models used within the UGROUND company, showing promising results.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101217"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891925","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-08-01DOI: 10.1016/j.cola.2023.101221
Joeri Exelmans , Jakob Pietron , Alexander Raschke , Hans Vangheluwe , Matthias Tichy
The complexity of modern software-intensive systems and the need for flexibility in their development process forces developers to collaborate using the most appropriate language(s) for each given task, view and component. Blended modeling is the ability to edit a model through multiple concrete syntaxes simultaneously.
To support collaborative blended modeling, we present a variation of operation-based versioning that allows bi-directional propagation of changes between concrete and abstract syntaxes. This allows us to support layout continuity between different versions, and to handle information that is not (yet) available (e.g., layout information) when rendering changes from abstract to concrete syntax. Finally, our approach does not enforce immediate conflict resolution. Rather, different merge options and their consequences can be presented to the users, who may choose to only perform partial conflict resolution, deferring final resolution till later.
In this article, we present the general approach and describe salient parts of an implementation.
{"title":"A new versioning approach for collaboration in blended modeling","authors":"Joeri Exelmans , Jakob Pietron , Alexander Raschke , Hans Vangheluwe , Matthias Tichy","doi":"10.1016/j.cola.2023.101221","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101221","url":null,"abstract":"<div><p>The complexity of modern software-intensive systems and the need for flexibility in their development process forces developers to collaborate using the most appropriate language(s) for each given task, view and component. Blended modeling is the ability to edit a model through multiple concrete syntaxes simultaneously.</p><p>To support collaborative blended modeling, we present a variation of operation-based versioning that allows bi-directional propagation of changes between concrete and abstract syntaxes. This allows us to support layout continuity between different versions, and to handle information that is not (yet) available (e.g., layout information) when rendering changes from abstract to concrete syntax. Finally, our approach does not enforce immediate conflict resolution. Rather, different merge options and their consequences can be presented to the users, who may choose to only perform partial conflict resolution, deferring final resolution till later.</p><p>In this article, we present the general approach and describe salient parts of an implementation.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101221"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891918","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2023-07-29DOI: 10.1016/j.cola.2023.101225
Wafa Ben Slama Souei , Chiraz El Hog , Raoudha Ben Djemaa , Layth Sliman , Ikram Amous Ben Amor
A Smart Contract (SC) is a piece of code executed on the blockchain to automatically trigger transactions upon the occurrence of predefined events. Due to the intrinsic features regarding traceability and data immutability, many companies started using blockchain Smart Contracts to perform collaborative processes. Despite their promising features, there is a lack of Smart Contacts management platforms that enable blockchain participants to describe and publish their smart contacts or “search and match” already deployed ones. In this paper, a new Distributed Smart Directory (DSD) where providers can publish their SCs description is proposed. The SCs descriptions include metadata covering functional, and non-functional properties of the SC. Hence, users can find SCs according to their non-functional preferences, needs, and constraints. The proposed DSD is an extension of the ebXML directory. It was fully implemented on-chain. The SCs descriptions are generated based on the Uniform Description language for SC (UDL-SC). The proposed solution is implemented on the Ethereum blockchain. It was then tested and evaluated.
{"title":"Towards smart contract distributed directory based on the uniform description language","authors":"Wafa Ben Slama Souei , Chiraz El Hog , Raoudha Ben Djemaa , Layth Sliman , Ikram Amous Ben Amor","doi":"10.1016/j.cola.2023.101225","DOIUrl":"10.1016/j.cola.2023.101225","url":null,"abstract":"<div><p>A Smart Contract (SC) is a piece of code executed on the blockchain to automatically trigger transactions upon the occurrence of predefined events. Due to the intrinsic features regarding traceability and data immutability, many companies started using blockchain Smart Contracts to perform collaborative processes. Despite their promising features, there is a lack of Smart Contacts management platforms that enable blockchain participants to describe and publish their smart contacts or “search and match” already deployed ones. In this paper, a new Distributed Smart Directory (DSD) where providers can publish their SCs description is proposed. The SCs descriptions include metadata covering functional, and non-functional properties of the SC. Hence, users can find SCs according to their non-functional preferences, needs, and constraints. The proposed DSD is an extension of the ebXML directory. It was fully implemented on-chain. The SCs descriptions are generated based on the Uniform Description language for SC (UDL-SC). The proposed solution is implemented on the Ethereum blockchain. It was then tested and evaluated.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"77 ","pages":"Article 101225"},"PeriodicalIF":2.2,"publicationDate":"2023-07-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"48820061","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}