programming language
Recently Published Documents





2022 ◽  
Vol 44 (1) ◽  
pp. 1-48
Darya Melicher ◽  
Anlun Xu ◽  
Valerie Zhao ◽  
Alex Potanin ◽  
Jonathan Aldrich

Effect systems have been a subject of active research for nearly four decades, with the most notable practical example being checked exceptions in programming languages such as Java. While many exception systems support abstraction, aggregation, and hierarchy (e.g., via class declaration and subclassing mechanisms), it is rare to see such expressive power in more generic effect systems. We designed an effect system around the idea of protecting system resources and incorporated our effect system into the Wyvern programming language. Similar to type members, a Wyvern object can have effect members that can abstract lower-level effects, allow for aggregation, and have both lower and upper bounds, providing for a granular effect hierarchy. We argue that Wyvern’s effects capture the right balance of expressiveness and power from the programming language design perspective. We present a full formalization of our effect-system design, showing that it allows reasoning about authority and attenuation. Our approach is evaluated through a security-related case study.

2022 ◽  
Vol 18 (1) ◽  
pp. 1-24
N. Khammassi ◽  
I. Ashraf ◽  
J. V. Someren ◽  
R. Nane ◽  
A. M. Krol ◽  

With the potential of quantum algorithms to solve intractable classical problems, quantum computing is rapidly evolving, and more algorithms are being developed and optimized. Expressing these quantum algorithms using a high-level language and making them executable on a quantum processor while abstracting away hardware details is a challenging task. First, a quantum programming language should provide an intuitive programming interface to describe those algorithms. Then a compiler has to transform the program into a quantum circuit, optimize it, and map it to the target quantum processor respecting the hardware constraints such as the supported quantum operations, the qubit connectivity, and the control electronics limitations. In this article, we propose a quantum programming framework named OpenQL, which includes a high-level quantum programming language and its associated quantum compiler. We present the programming interface of OpenQL, we describe the different layers of the compiler and how we can provide portability over different qubit technologies. Our experiments show that OpenQL allows the execution of the same high-level algorithm on two different qubit technologies, namely superconducting qubits and Si-Spin qubits. Besides the executable code, OpenQL also produces an intermediate quantum assembly code, which is technology independent and can be simulated using the QX simulator.

2022 ◽  
Vol 23 (1) ◽  
pp. 1-42
Gilles Barthe ◽  
Charlie Jacomme ◽  
Steve Kremer

We study decidability problems for equivalence of probabilistic programs for a core probabilistic programming language over finite fields of fixed characteristic. The programming language supports uniform sampling, addition, multiplication, and conditionals and thus is sufficiently expressive to encode Boolean and arithmetic circuits. We consider two variants of equivalence: The first one considers an interpretation over the finite field F q , while the second one, which we call universal equivalence, verifies equivalence over all extensions F q k of F q . The universal variant typically arises in provable cryptography when one wishes to prove equivalence for any length of bitstrings, i.e., elements of F 2 k for any k . While the first problem is obviously decidable, we establish its exact complexity, which lies in the counting hierarchy. To show decidability and a doubly exponential upper bound of the universal variant, we rely on results from algorithmic number theory and the possibility to compare local zeta functions associated to given polynomials. We then devise a general way to draw links between the universal probabilistic problems and widely studied problems on linear recurrence sequences. Finally, we study several variants of the equivalence problem, including a problem we call majority, motivated by differential privacy. We also define and provide some insights about program indistinguishability, proving that it is decidable for programs always returning 0 or 1.

2022 ◽  
Vol 31 (1) ◽  
pp. 1-25
Hui Xu ◽  
Zhuangbin Chen ◽  
Mingshen Sun ◽  
Yangfan Zhou ◽  
Michael R. Lyu

Rust is an emerging programming language that aims at preventing memory-safety bugs without sacrificing much efficiency. The claimed property is very attractive to developers, and many projects start using the language. However, can Rust achieve the memory-safety promise? This article studies the question by surveying 186 real-world bug reports collected from several origins, which contain all existing Rust common vulnerability and exposures (CVEs) of memory-safety issues by 2020-12-31. We manually analyze each bug and extract their culprit patterns. Our analysis result shows that Rust can keep its promise that all memory-safety bugs require unsafe code, and many memory-safety bugs in our dataset are mild soundness issues that only leave a possibility to write memory-safety bugs without unsafe code. Furthermore, we summarize three typical categories of memory-safety bugs, including automatic memory reclaim, unsound function, and unsound generic or trait. While automatic memory claim bugs are related to the side effect of Rust newly-adopted ownership-based resource management scheme, unsound function reveals the essential challenge of Rust development for avoiding unsound code, and unsound generic or trait intensifies the risk of introducing unsoundness. Based on these findings, we propose two promising directions toward improving the security of Rust development, including several best practices of using specific APIs and methods to detect particular bugs involving unsafe code. Our work intends to raise more discussions regarding the memory-safety issues of Rust and facilitate the maturity of the language.

Brahim Belattar ◽  
Abdelhabib Bourouis

This paper describes important features of JAPROSIM, a free and open source simulation library implemented in Java programming language. It provides a framework for building discrete event simulation models. The process interaction world view adopted by JAPROSIM is discussed. We present the architecture and major components of the simulation library. In order to ascertain important features of JAPROSIM, examples are given. Further motivations are discussed and suggestions for improving our work are given.

2022 ◽  
Vol 11 (1) ◽  
pp. 160
Rosyid Ridlo Al Hakim ◽  
Purwono Purwono ◽  
Yanuar Zulardiansyah Arief ◽  
Agung Pangestu ◽  
Muhammad Haikal Satria ◽  

Since Covid-19 was declared a global pandemic because it has spread throughout the world, every effort has been made to help prevent and tackle the transmission of Covid-19, including information technology. Information technology developed to determine the shortest distance for Covid-19 cases around us needs to be developed. This research implements Dijkstra's Algorithm written in the React Native programming language to build a Covid-19 tracking application. The system can display the closest distance with a radius of at least one meter, and the test results can map the nearest radius of 41 meters and the most immediate radius of 147 meters. This system is built for the compatibility of Android OS and iOS applications with React Native programming.

2022 ◽  
pp. 106-132

This chapter begins with the Socrates DigitalTM module calling the “Define Problem” process. This process identifies the problem area and gathers the problem-defining information from the user. This chapter provides pseudo-code for the subprocesses that make up the processes for Socrates DigitalTM. It has enough detail to implement the logic in any procedural and general-purpose computer programming language. This chapter shows that more questions follow after asking the user a question in many situations. The questions aimed at getting these answers are questions that target the quality of reasoning.

2022 ◽  
pp. 253-269
Hüseyin Özçınar

The idea that computational thinking or algorithmic thinking should be taught to everyone dates back to the 1960s. First in 1960s, Alan Perlis argued that computer programming should be taught to everyone because it can be used as a mental tool for understanding and solving every kind of problem. In 1980s, under the leadership of Seymour Papert, students at the level of primary education were attempted to be taught LOGO programming language with the aim of gaining procedural thinking skill. After the publication of Jeannette Wing's “computational thinking” in Communications of the ACM in 2006, the idea that the basic concepts of computer science should be learned by all was started to be debated widely again. In the present paper, the justifications for teaching computational thinking and applicability of teaching computational thinking within the context of existing conditions will be discussed.

2022 ◽  
pp. 247-256
Neha Puri

Artificial intelligence (AI) is a huge headway in innovation that has everybody talking about its energizing guarantees in the innovation world. With regards to AI, it additionally incorporates its territories, for example, AI (ML). While AI could be portrayed as the capacity of machines to settle on shrewd human-like choices and improve over the long run, ML includes building models, generally statistical models that give prescient outcomes and can be developed. Many are not extremely educated about this area. While this is true, there is something else entirely to it from face recognition, fingerprints recognition, chat-bots, predictive business models, and sentimental analysis. Beforehand, AI joining in the product advancement was simply conceivable to the huge organizations that had the assets to recruit exceptionally qualified experts. Over the long run, AI structures with high deliberation levels have been created, and with few coding lines in any programming language of the decision, one can have the option to enter in various fields.

Sign in / Sign up

Export Citation Format

Share Document