A. F. da Silva, E. Borin, Fernando Magno Quintão Pereira, Nilton Luiz Queiroz, O. Napoli
{"title":"Program representations for predictive compilation: State of affairs in the early 20's","authors":"A. F. da Silva, E. Borin, Fernando Magno Quintão Pereira, Nilton Luiz Queiroz, O. Napoli","doi":"10.1016/j.cola.2022.101171","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101171","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"43 1","pages":"101171"},"PeriodicalIF":2.2,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77651916","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}
{"title":"Surveying communities of users of MATLAB and clone languages","authors":"Eduardo Reis, Catarina Gralha, M. Monteiro","doi":"10.1016/j.cola.2022.101170","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101170","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"1 1","pages":"101170"},"PeriodicalIF":2.2,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74592196","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}
Vinícius Julião Ramos, Alexander Holmquist, Fernando Magno Quintão Pereira
{"title":"Hapi: A domain-specific language for the declaration of access policies","authors":"Vinícius Julião Ramos, Alexander Holmquist, Fernando Magno Quintão Pereira","doi":"10.1016/j.cola.2022.101153","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101153","url":null,"abstract":"<div><p><span>Access policies specify what are the actions that different actors can perform on available resources. Access policies are a core notion in multiuser environments<span>, such as operating systems and distributed databases. Currently, most of these systems use general data specification languages, such as JSON, XML and YAML to describe access policies. Yet, domain-specific languages are also available for this task. One of such languages is </span></span><span>Legalease</span>, from Microsoft. This paper presents a new version of <span>Legalease</span>, called <span>Hapi</span>. <span>Hapi</span> replaces <span>Legalease</span>’s notion of a lattice with a partially ordered set (poset). Posets improve the expressivity of <span>Legalease</span>, at the expenses of a more expensive verification algorithm. This poset-based representation generalizes the notion of actors, actions and resources to user-defined entities. <span>Hapi</span> is publicly available. Its distribution includes a policy visualizer and a code-compression tool to efficiently store specifications.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"72 ","pages":"Article 101153"},"PeriodicalIF":2.2,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72242275","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}
Júnior Löff, Renato B. Hoffmann, Dalvan Griebler, L. G. Fernandes
{"title":"Combining stream with data parallelism abstractions for multi-cores","authors":"Júnior Löff, Renato B. Hoffmann, Dalvan Griebler, L. G. Fernandes","doi":"10.1016/j.cola.2022.101160","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101160","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"27 1","pages":"101160"},"PeriodicalIF":2.2,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73029333","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}
{"title":"Automatic mandala pattern design and generation based on COOM framework","authors":"Shuchang Xu , Yu Zhang , Simin Yan","doi":"10.1016/j.cola.2022.101138","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101138","url":null,"abstract":"<div><p>We propose a novel framework to automatically design and generate exquisite color mandala patterns. First, we summarize pre-requirements for generating reasonable and applicable mandala patterns followed by introducing COOM (Curve, Object, Operation and Model), the fundamental framework of mandala pattern generator. The framework defines how to effectively create visually pleasing mandala sketches. Then we propose a color transfer-based method to colorize the mandala sketch, in which all similar regions will share the same color. Currently, the automatically generated mandala patterns have been used in a mobile game with 3 million DAU (Daily Active Users). The experiments show that our mandala generator is quite effective and comparable with professional artists.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"72 ","pages":"Article 101138"},"PeriodicalIF":2.2,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72242281","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}
{"title":"Taming stateful computations in Rust with typestates","authors":"José Duarte , António Ravara","doi":"10.1016/j.cola.2022.101154","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101154","url":null,"abstract":"<div><p>As our lives become increasingly more reliant on software, the impact of its failures grows as well; these failures have diverse causes and their impact ranges from negligible to life-threatening; thus, it is our duty as developers to minimize their occurrence, just as other fields do.</p><p>To that end, we build abstractions, move complexity from component to component, and much more, just to stop the end-user from shooting themselves in the foot. However, building said abstractions still requires the original author to know where the pitfalls lie and how to avoid them, an implicit contract that does not constitute a guarantee that they will not shoot themselves and their users in the feet.</p><p>Rust aims to minimize the amount of handguns users have at their disposal, locking them behind special <span>unsafe</span> blocks and restricting the set of possible programs through static analysis; this analysis is performed by the compiler which ensures that the program does not contain memory related errors such as <em>use-after-free</em> bugs.</p><p>While Rust is able to succeed in the previous domain, other error classes persist, such as errors related to API misusage. Our work aims to tackle that domain, providing a tool which enables developers to write safer APIs using typestates.</p><p>We propose a macro which embeds a typestate description DSL in Rust which allows developers to specify typestates for their APIs; the typestate is checked at compile-time for common mistakes and to ensure the correct usage of the typestate, we leverage Rust’s type system.</p><p>Our work only requires a Rust compiler, avoiding workflow bloat and keeping the development experience simple; it is open-source and available at <span>https://github.com/rustype/typestate-rs</span><svg><path></path></svg>.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"72 ","pages":"Article 101154"},"PeriodicalIF":2.2,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S259011842200051X/pdfft?md5=2622a5c710cc35277031a7c6298fd301&pid=1-s2.0-S259011842200051X-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72242278","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Kyungjin Park, Bradford W. Mott, S. J. Lee, Anisha Gupta, Katie Jantaraweragul, Krista D. Glazewski, J. Scribner, Anne T. Ottenbreit-Leftwich, C. Hmelo‐Silver, James Lester
{"title":"Investigating a visual interface for elementary students to formulate AI planning tasks","authors":"Kyungjin Park, Bradford W. Mott, S. J. Lee, Anisha Gupta, Katie Jantaraweragul, Krista D. Glazewski, J. Scribner, Anne T. Ottenbreit-Leftwich, C. Hmelo‐Silver, James Lester","doi":"10.1016/j.cola.2022.101157","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101157","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"1 1","pages":"101157"},"PeriodicalIF":2.2,"publicationDate":"2022-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90289547","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}
{"title":"PeachPie: Mature PHP to CLI compiler","authors":"Robert Husák, Jakub Mísek, F. Zavoral, J. Kofroň","doi":"10.1016/j.cola.2022.101152","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101152","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"59 1","pages":"101152"},"PeriodicalIF":2.2,"publicationDate":"2022-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74057408","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}
{"title":"Taming stateful computations in Rust with typestates","authors":"J. Duarte, A. Ravara","doi":"10.1016/j.cola.2022.101154","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101154","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"15 1","pages":"101154"},"PeriodicalIF":2.2,"publicationDate":"2022-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85118076","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}