arXiv - CS - Programming Languages最新文献

筛选
英文 中文
A Systematic Mapping Study on Teaching of Security Concepts in Programming Courses 程序设计课程中安全概念教学的系统映射研究
arXiv - CS - Programming Languages Pub Date : 2024-07-10 DOI: arxiv-2407.07511
Alina Torbunova, Adnan Ashraf, Ivan Porres
{"title":"A Systematic Mapping Study on Teaching of Security Concepts in Programming Courses","authors":"Alina Torbunova, Adnan Ashraf, Ivan Porres","doi":"arxiv-2407.07511","DOIUrl":"https://doi.org/arxiv-2407.07511","url":null,"abstract":"Context: To effectively defend against ever-evolving cybersecurity threats,\u0000software systems should be made as secure as possible. To achieve this,\u0000software developers should understand potential vulnerabilities and apply\u0000secure coding practices. To prepare these skilled professionals, it is\u0000important that cybersecurity concepts are included in programming courses\u0000taught at universities. Objective: To present a comprehensive and unbiased\u0000literature review on teaching of cybersecurity concepts in programming courses\u0000taught at universities. Method: We perform a Systematic Mapping Study. We\u0000present six research questions, define our selection criteria, and develop a\u0000classification scheme. Results and Conclusions: We select 24 publications. Our\u0000results show a wide range of research contributions. We also outline guidelines\u0000and identify opportunities for future studies. The guidelines include coverage\u0000of security knowledge categories and evaluation of contributions. We suggest\u0000that future studies should cover security issues, negative impacts, and\u0000countermeasures, as well as apply evaluation techniques that examine students'\u0000knowledge. The opportunities for future studies are related to advanced\u0000courses, security knowledge frameworks, and programming environments.\u0000Furthermore, there is a need of a holistic security framework that covers the\u0000security concepts identified in this study and is suitable for education.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141587028","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}
引用次数: 0
Programming Language Case Studies Can Be Deep 编程语言案例研究可以很深入
arXiv - CS - Programming Languages Pub Date : 2024-07-10 DOI: arxiv-2407.08091
Rose BohrerWorcester Polytechnic Institute
{"title":"Programming Language Case Studies Can Be Deep","authors":"Rose BohrerWorcester Polytechnic Institute","doi":"arxiv-2407.08091","DOIUrl":"https://doi.org/arxiv-2407.08091","url":null,"abstract":"In the pedagogy of programming languages, one well-known course structure is\u0000to tour multiple languages as a means of touring paradigms. This\u0000tour-of-paradigms approach has long received criticism as lacking depth,\u0000distracting students from foundational issues in language theory and\u0000implementation. This paper argues for disentangling the idea of a\u0000tour-of-languages from the tour-of-paradigms. We make this argument by\u0000presenting, in depth, a series of case studies included in the Human-Centered\u0000Programming Languages curriculum. In this curriculum, case studies become deep,\u0000serving to tour the different intellectual foundations through which a scholar\u0000can approach programming languages, which one could call the tour-of-humans. In\u0000particular, the design aspect of programming languages has much to learn from\u0000the social sciences and humanities, yet these intellectual foundations would\u0000yield far fewer deep contributions if we did not permit them to employ case\u0000studies.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141609513","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}
引用次数: 0
Finite-State Automaton To/From Regular Expression Visualization 有限状态自动机到/从正则表达式可视化
arXiv - CS - Programming Languages Pub Date : 2024-07-10 DOI: arxiv-2407.08088
Marco T. MorazánSeton Hall University, Tijana MinićSeton Hall University
{"title":"Finite-State Automaton To/From Regular Expression Visualization","authors":"Marco T. MorazánSeton Hall University, Tijana MinićSeton Hall University","doi":"arxiv-2407.08088","DOIUrl":"https://doi.org/arxiv-2407.08088","url":null,"abstract":"Most Formal Languages and Automata Theory courses explore the duality between\u0000computation models to recognize words in a language and computation models to\u0000generate words in a language. For students unaccustomed to formal statements,\u0000these transformations are rarely intuitive. To assist students with such\u0000transformations, visualization tools can play a pivotal role. This article\u0000presents visualization tools developed for FSM -- a domain-specific language\u0000for the Automata Theory classroom -- to transform a finite state automaton to a\u0000regular expression and vice versa. Using these tools, the user may provide an\u0000arbitrary finite-state machine or an arbitrary regular expression and step\u0000forward and step backwards through a transformation. At each step, the\u0000visualization describes the step taken. The tools are outlined, their\u0000implementation is described, and they are compared with related work. In\u0000addition, empirical data collected from a control group is presented. The\u0000empirical data suggests that the tools are well-received, effective, and\u0000learning how to use them has a low extraneous cognitive load.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141609367","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}
引用次数: 0
Toward Verified Library-Level Choreographic Programming with Algebraic Effects 实现具有代数效果的验证库级编舞编程
arXiv - CS - Programming Languages Pub Date : 2024-07-09 DOI: arxiv-2407.06509
Gan Shen, Lindsey Kuper
{"title":"Toward Verified Library-Level Choreographic Programming with Algebraic Effects","authors":"Gan Shen, Lindsey Kuper","doi":"arxiv-2407.06509","DOIUrl":"https://doi.org/arxiv-2407.06509","url":null,"abstract":"Choreographic programming (CP) is a paradigm for programming distributed\u0000applications as single, unified programs, called choreographies, that are then\u0000compiled to node-local programs via endpoint projection (EPP). Recently,\u0000library-level CP frameworks have emerged, in which choreographies and EPP are\u0000expressed as constructs in an existing host language. So far, however,\u0000library-level CP lacks a solid theoretical foundation. In this paper, we propose modeling library-level CP using algebraic effects,\u0000an abstraction that generalizes the approach taken by existing CP libraries.\u0000Algebraic effects let us define choreographies as computations with\u0000user-defined effects and EPP as location-specific effect handlers. Algebraic\u0000effects also lend themselves to reasoning about correctness properties, such as\u0000soundness and completeness of EPP. We present a prototype of a library-level CP\u0000framework based on algebraic effects, implemented in the Agda proof assistant,\u0000and discuss our ongoing work on leveraging the algebraic-effects-based approach\u0000to prove the correctness of our library-level CP implementation.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141574056","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}
引用次数: 0
foetus - Termination Checker for Simple Functional Programs foetus - 简单功能程序的终止检查程序
arXiv - CS - Programming Languages Pub Date : 2024-07-09 DOI: arxiv-2407.06924
Andreas Abel
{"title":"foetus - Termination Checker for Simple Functional Programs","authors":"Andreas Abel","doi":"arxiv-2407.06924","DOIUrl":"https://doi.org/arxiv-2407.06924","url":null,"abstract":"We introduce a simple functional language foetus (lambda calculus with\u0000tuples, constructors and pattern matching) supplied with a termination checker.\u0000This checker tries to find a well-founded structural order on the parameters on\u0000the given function to prove termination. The components of the check algorithm\u0000are: function call extraction out of the program text, call graph completion\u0000and finding a lexical order for the function parameters.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141573828","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}
引用次数: 0
Towards Algebraic Subtyping for Extensible Records 实现可扩展记录的代数子类型化
arXiv - CS - Programming Languages Pub Date : 2024-07-09 DOI: arxiv-2407.06747
Rodrigo Marques, Mário Florido, Pedro Vasconcelos
{"title":"Towards Algebraic Subtyping for Extensible Records","authors":"Rodrigo Marques, Mário Florido, Pedro Vasconcelos","doi":"arxiv-2407.06747","DOIUrl":"https://doi.org/arxiv-2407.06747","url":null,"abstract":"MLsub is a minimal language with a type system combining subtyping and\u0000parametric polymorphism and a type inference algorithm which infers compact\u0000principal types. Simple-sub is an alternative inference algorithm which can be\u0000implemented efficiently and is easier to understand. MLsub supports explicitly\u0000typed records which are not extensible. Here we extend Simple-sub with\u0000extensible records, meaning that we can add new fields to a previously defined\u0000record. For this we add row variables to our type language and extend the type\u0000constraint solving method of our type inference algorithm accordingly, keeping\u0000the decidability of type inference.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141574055","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}
引用次数: 0
Meerkat: A Distributed Reactive Programming Language with Live Updates Meerkat:实时更新的分布式反应编程语言
arXiv - CS - Programming Languages Pub Date : 2024-07-09 DOI: arxiv-2407.06885
Heng Zhong, Anrui Liu
{"title":"Meerkat: A Distributed Reactive Programming Language with Live Updates","authors":"Heng Zhong, Anrui Liu","doi":"arxiv-2407.06885","DOIUrl":"https://doi.org/arxiv-2407.06885","url":null,"abstract":"We propose a novel type-safe reactive programming language with live updates\u0000that extends an existing work to support multiple distributed evolution queues.\u0000Dependency sets of definitions are incorporated in the type system to protect\u0000the interaction between the frontend user interface and the backend database.\u0000Distributed live updates submitted by multiple programmers are ensured strong\u0000consistency based on an existing framework for distributed reactive\u0000propagation.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141574054","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}
引用次数: 0
Failure Transparency in Stateful Dataflow Systems (Technical Report) 有状态数据流系统中的故障透明度(技术报告)
arXiv - CS - Programming Languages Pub Date : 2024-07-09 DOI: arxiv-2407.06738
Aleksey VeresovKTH Royal Institute of Technology, Jonas SpengerKTH Royal Institute of Technology, Paris CarboneKTH Royal Institute of TechnologyRISE Research Institutes of Sweden, Philipp HallerKTH Royal Institute of Technology
{"title":"Failure Transparency in Stateful Dataflow Systems (Technical Report)","authors":"Aleksey VeresovKTH Royal Institute of Technology, Jonas SpengerKTH Royal Institute of Technology, Paris CarboneKTH Royal Institute of TechnologyRISE Research Institutes of Sweden, Philipp HallerKTH Royal Institute of Technology","doi":"arxiv-2407.06738","DOIUrl":"https://doi.org/arxiv-2407.06738","url":null,"abstract":"Failure transparency enables users to reason about distributed systems at a\u0000higher level of abstraction, where complex failure-handling logic is hidden.\u0000This is especially true for stateful dataflow systems, which are the backbone\u0000of many cloud applications. In particular, this paper focuses on proving\u0000failure transparency in Apache Flink, a popular stateful dataflow system. Even\u0000though failure transparency is a critical aspect of Apache Flink, to date it\u0000has not been formally proven. Showing that the failure transparency mechanism\u0000is correct, however, is challenging due to the complexity of the mechanism\u0000itself. Nevertheless, this complexity can be effectively hidden behind a\u0000failure transparent programming interface. To show that Apache Flink is failure\u0000transparent, we model it in small-step operational semantics. Next, we provide\u0000a novel definition of failure transparency based on observational\u0000explainability, a concept which relates executions according to their\u0000observations. Finally, we provide a formal proof of failure transparency for\u0000the implementation model; i.e., we prove that the failure-free model correctly\u0000abstracts from the failure-related details of the implementation model. We also\u0000show liveness of the implementation model under a fair execution assumption.\u0000These results are a first step towards a verified stack for stateful dataflow\u0000systems.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141574059","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}
引用次数: 0
Type Universes as Allocation Effects 作为分配效应的类型宇宙
arXiv - CS - Programming Languages Pub Date : 2024-07-09 DOI: arxiv-2407.06473
Paulette Koronkevich, William J. Bowman
{"title":"Type Universes as Allocation Effects","authors":"Paulette Koronkevich, William J. Bowman","doi":"arxiv-2407.06473","DOIUrl":"https://doi.org/arxiv-2407.06473","url":null,"abstract":"In this paper, we explore a connection between type universes and memory\u0000allocation. Type universe hierarchies are used in dependent type theories to\u0000ensure consistency, by forbidding a type from quantifying over all types.\u0000Instead, the types of types (universes) form a hierarchy, and a type can only\u0000quantify over types in other universes (with some exceptions), restricting\u0000cyclic reasoning in proofs. We present a perspective where universes also\u0000describe emph{where} values are allocated in the heap, and the choice of\u0000universe algebra imposes a structure on the heap overall. The resulting type\u0000system provides a simple declarative system for reasoning about and restricting\u0000memory allocation, without reasoning about reads or writes. We present a\u0000theoretical framework for equipping a type system with higher-order references\u0000restricted by a universe hierarchy, and conjecture that many existing universe\u0000algebras give rise to interesting systems for reasoning about allocation. We\u0000present 3 instantiations of this approach to enable reasoning about allocation\u0000in the simply typed $lambda$-calculus: (1) the standard ramified universe\u0000hierarchy, which we prove guarantees termination of the language extended with\u0000higher-order references by restricting cycles in the heap; (2) an extension\u0000with an emph{impredicative} base universe, which we conjecture enables\u0000full-ground references (with terminating computation but cyclic ground data\u0000structures); (3) an extension with emph{universe polymorphism}, which divides\u0000the heap into fine-grained regions.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141574057","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}
引用次数: 0
Macaw: A Machine Code Toolbox for the Busy Binary Analyst Macaw:为繁忙的二进制分析师设计的机器码工具箱
arXiv - CS - Programming Languages Pub Date : 2024-07-08 DOI: arxiv-2407.06375
Ryan G. Scott, Brett Boston, Benjamin Davis, Iavor Diatchki, Mike Dodds, Joe Hendrix, Daniel Matichuk, Kevin Quick, Tristan Ravitch, Valentin Robert, Benjamin Selfridge, Andrei Stefănescu, Daniel Wagner, Simon Winwood
{"title":"Macaw: A Machine Code Toolbox for the Busy Binary Analyst","authors":"Ryan G. Scott, Brett Boston, Benjamin Davis, Iavor Diatchki, Mike Dodds, Joe Hendrix, Daniel Matichuk, Kevin Quick, Tristan Ravitch, Valentin Robert, Benjamin Selfridge, Andrei Stefănescu, Daniel Wagner, Simon Winwood","doi":"arxiv-2407.06375","DOIUrl":"https://doi.org/arxiv-2407.06375","url":null,"abstract":"When attempting to understand the behavior of an executable, a binary analyst\u0000can make use of many different techniques. These include program slicing,\u0000dynamic instrumentation, binary-level rewriting, symbolic execution, and formal\u0000verification, all of which can uncover insights into how a piece of machine\u0000code behaves. As a result, there is no one-size-fits-all binary analysis tool,\u0000so a binary analysis researcher will often combine several different tools.\u0000Sometimes, a researcher will even need to design new tools to study problems\u0000that existing frameworks are not well equipped to handle. Designing such tools\u0000from complete scratch is rarely time- or cost-effective, however, given the\u0000scale and complexity of modern instruction set architectures. We present Macaw, a modular framework that makes it possible to rapidly build\u0000reliable binary analysis tools across a range of use cases. Over a decade of\u0000development, we have used Macaw to support an industrial research team in\u0000building tools for machine code-related tasks. As such, the name \"Macaw\" refers\u0000not just to the framework itself, but also a suite of tools that are built on\u0000top of the framework. We describe Macaw in depth and describe the different\u0000static and dynamic analyses that it performs, many of which are powered by an\u0000SMT-based symbolic execution engine. We put a particular focus on\u0000interoperability between machine code and higher-level languages, including\u0000binary lifting from x86 to LLVM, as well verifying the correctness of mixed C\u0000and assembly code.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141574063","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}
引用次数: 0
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信