首页 > 最新文献

Journal of Computer Languages最新文献

英文 中文
Taming stateful computations in Rust with typestates 用类型状态驯服Rust中的状态计算
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-10-01 DOI: 10.1016/j.cola.2022.101154
José Duarte , António Ravara

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.

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.

Rust aims to minimize the amount of handguns users have at their disposal, locking them behind special unsafe 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 use-after-free bugs.

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.

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.

Our work only requires a Rust compiler, avoiding workflow bloat and keeping the development experience simple; it is open-source and available at https://github.com/rustype/typestate-rs.

随着我们的生活越来越依赖软件,软件故障的影响也越来越大;这些故障的原因多种多样,其影响从微不足道到危及生命不等;因此,作为开发人员,我们有责任像其他领域一样,尽量减少它们的出现。为此,我们构建抽象,将复杂性从一个组件转移到另一个组件,等等,只是为了防止最终用户自食其果。然而,构建所说的抽象仍然需要原作者知道陷阱在哪里,以及如何避免它们,这是一种隐含的契约,并不构成他们不会向自己和用户开枪的保证。Rust旨在最大限度地减少用户可支配的手枪数量,将其锁定在特殊的不安全块后面,并通过静态分析限制可能的程序集;这种分析是由编译器执行的,它确保程序不包含与内存相关的错误,例如释放错误后使用。虽然Rust能够在上一个域中成功,但其他错误类仍然存在,例如与API误用有关的错误。我们的工作旨在解决这个领域,提供一种工具,使开发人员能够使用类型状态编写更安全的API。我们提出了一个宏,它在Rust中嵌入了一个类型状态描述DSL,允许开发人员为他们的API指定类型状态;在编译时会检查typestate是否存在常见错误,为了确保typestate的正确使用,我们利用了Rust的类型系统。我们的工作只需要一个Rust编译器,避免了工作流程膨胀,并使开发体验变得简单;它是开源的,可在https://github.com/rustype/typestate-rs.
{"title":"Taming stateful computations in Rust with typestates","authors":"José Duarte ,&nbsp;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}
引用次数: 2
COMORP: Rapid prototyping for mathematical database cost models development 用于数学数据库成本模型开发的快速原型
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-10-01 DOI: 10.1016/j.cola.2022.101173
Abdelkader Ouared, Moussa Amrani, P. Schobbens
{"title":"COMORP: Rapid prototyping for mathematical database cost models development","authors":"Abdelkader Ouared, Moussa Amrani, P. Schobbens","doi":"10.1016/j.cola.2022.101173","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101173","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"51 1","pages":"101173"},"PeriodicalIF":2.2,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90960146","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}
引用次数: 1
Investigating a visual interface for elementary students to formulate AI planning tasks 为小学生设计一个可视化界面来制定人工智能规划任务
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-09-01 DOI: 10.1016/j.cola.2022.101157
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}
引用次数: 2
PeachPie: Mature PHP to CLI compiler 成熟的PHP到CLI编译器
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-09-01 DOI: 10.1016/j.cola.2022.101152
Robert Husák, Jakub Mísek, F. Zavoral, J. Kofroň
{"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}
引用次数: 0
Taming stateful computations in Rust with typestates 在Rust中使用类型状态驯服有状态计算
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-09-01 DOI: 10.1016/j.cola.2022.101154
J. Duarte, A. Ravara
{"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}
引用次数: 1
Hapi: A domain-specific language for the declaration of access policies Hapi:用于声明访问策略的特定于领域的语言
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-09-01 DOI: 10.1016/j.cola.2022.101153
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":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"81 1","pages":"101153"},"PeriodicalIF":2.2,"publicationDate":"2022-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76139342","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}
引用次数: 1
Design, implementation and evaluation of the Hedy programming language Hedy编程语言的设计、实现和评估
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-09-01 DOI: 10.1016/j.cola.2022.101158
Marleen Gilsing, Jesús Pelay, F. Hermans
{"title":"Design, implementation and evaluation of the Hedy programming language","authors":"Marleen Gilsing, Jesús Pelay, F. Hermans","doi":"10.1016/j.cola.2022.101158","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101158","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"32 1","pages":"101158"},"PeriodicalIF":2.2,"publicationDate":"2022-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78569509","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}
引用次数: 0
Minimising line segments in linear diagrams is NP-hard 最小化线性图中的线段是NP困难的
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-08-01 DOI: 10.1016/j.cola.2022.101136
Peter Chapman, Kevin Sim, Huang Hao Chen

Linear diagrams have been shown to be an effective method of representing set-based data. Moreover, a number of guidelines have been proven to improve the efficacy of linear diagrams. One of these guidelines is to minimise the number of line segments appearing in a diagram. We show this problem to be NP-hard.

线性图已被证明是表示基于集合的数据的有效方法。此外,许多指南已被证明可以提高线性图的功效。其中一个指导原则是尽量减少图表中出现的线段数量。我们证明这个问题是NP难的。
{"title":"Minimising line segments in linear diagrams is NP-hard","authors":"Peter Chapman,&nbsp;Kevin Sim,&nbsp;Huang Hao Chen","doi":"10.1016/j.cola.2022.101136","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101136","url":null,"abstract":"<div><p>Linear diagrams have been shown to be an effective method of representing set-based data. Moreover, a number of guidelines have been proven to improve the efficacy of linear diagrams. One of these guidelines is to minimise the number of line segments appearing in a diagram. We show this problem to be NP-hard.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"71 ","pages":"Article 101136"},"PeriodicalIF":2.2,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S2590118422000351/pdfft?md5=a982e755f1407cdf8298654e8eace4ec&pid=1-s2.0-S2590118422000351-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72268972","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}
引用次数: 2
Investigating the relationships between class probabilities and users' appropriate trust in computer vision classifications of ambiguous images 研究模糊图像计算机视觉分类中类别概率与用户适当信任的关系
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-08-01 DOI: 10.1016/j.cola.2022.101149
G. D. J. Barbosa, Dalai Dos Santos Ribeiro, Marisa Do Carmo Silva, H. Lopes, Simone Diniz Junqueira Barbosa
{"title":"Investigating the relationships between class probabilities and users' appropriate trust in computer vision classifications of ambiguous images","authors":"G. D. J. Barbosa, Dalai Dos Santos Ribeiro, Marisa Do Carmo Silva, H. Lopes, Simone Diniz Junqueira Barbosa","doi":"10.1016/j.cola.2022.101149","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101149","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"1 1","pages":"101149"},"PeriodicalIF":2.2,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81950756","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}
引用次数: 0
A surprisingly simple Lua compiler - Extended version 一个令人惊讶的简单Lua编译器-扩展版本
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-08-01 DOI: 10.1016/j.cola.2022.101151
Hugo Musso Gualandi, R. Ierusalimschy
{"title":"A surprisingly simple Lua compiler - Extended version","authors":"Hugo Musso Gualandi, R. Ierusalimschy","doi":"10.1016/j.cola.2022.101151","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101151","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"13 1","pages":"101151"},"PeriodicalIF":2.2,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82065040","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}
引用次数: 0
期刊
Journal of Computer Languages
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1