systems programming
Recently Published Documents


TOTAL DOCUMENTS

178
(FIVE YEARS 19)

H-INDEX

9
(FIVE YEARS 1)

Information ◽  
2021 ◽  
Vol 13 (1) ◽  
pp. 16
Author(s):  
João Cunha ◽  
João Durães ◽  
Ana Alves ◽  
Fernanda Coutinho ◽  
Jorge Barreiros ◽  
...  

Digital transformation has increased the demand for skilled Information Technology (IT) professionals, to an extent that universities cannot satisfy it with newly graduated students. Furthermore, the economical downturn has created difficulties and scarcity of opportunities in other areas of activity. This combination of factors led to the need to consider requalification programmes that enable individuals with diverse specialisations and backgrounds to realign their careers to the IT area. This has led to the creation of many coding bootcamps, providing intensive full-time courses focused on unemployed people or unhappy with their jobs, and individuals seeking a career change. A multidisciplinary group of higher education teachers, in collaboration with several industry stakeholders, have designed and promoted an embedded systems programming course, using an intensive project-based learning approach comprising 6 months of daylong classes and a 9 months internship. Having finished two editions of the programme, a questionnaire was presented to the students that finished successfully, in order to evaluate the long-term benefits to graduates and companies. This paper presents a brief discussion of the programme organisation and pedagogical methodologies, as well as the results of the questionnaire, conducted following a Goal–Question–Metric (GQM) approach. The results demonstrate very positive outcomes, both for graduates and companies.


2021 ◽  
Vol 5 (ICFP) ◽  
pp. 1-30
Author(s):  
Joshua Yanovski ◽  
Hoang-Hai Dang ◽  
Ralf Jung ◽  
Derek Dreyer

The Rust language offers a promising approach to safe systems programming based on the principle of aliasing XOR mutability : a value may be either aliased or mutable, but not both at the same time. However, to implement pointer-based data structures with internal sharing, such as graphs or doubly-linked lists, we need to be able to mutate aliased state. To support such data structures, Rust provides a number of APIs that offer so-called interior mutability : the ability to mutate data via method calls on a shared reference. Unfortunately, the existing APIs sacrifice flexibility, concurrent access, and/or performance, in exchange for safety. In this paper, we propose a new Rust API called GhostCell which avoids such sacrifices by separating permissions from data : it enables the user to safely synchronize access to a collection of data via a single permission. GhostCell repurposes an old trick from typed functional programming: branded types (as exemplified by Haskell’s ST monad), which combine phantom types and rank-2 polymorphism to simulate a lightweight form of state-dependent types. We have formally proven the soundness of GhostCell by adapting and extending RustBelt, a semantic soundness proof for a representative subset of Rust, mechanized in Coq.


2021 ◽  
Vol 64 (4) ◽  
pp. 144-152
Author(s):  
Ralf Jung ◽  
Jacques-Henri Jourdan ◽  
Robbert Krebbers ◽  
Derek Dreyer

The promise and the challenges of the first industry-supported language to master the trade-off between safety and control.


Author(s):  
Felix A. Wolf ◽  
Linard Arquint ◽  
Martin Clochard ◽  
Wytse Oortwijn ◽  
João C. Pereira ◽  
...  

AbstractGo is an increasingly-popular systems programming language targeting, especially, concurrent and distributed systems. Go differentiates itself from other imperative languages by offering structural subtyping and lightweight concurrency through goroutines with message-passing communication. This combination of features poses interesting challenges for static verification, most prominently the combination of a mutable heap and advanced concurrency primitives.We present Gobra, a modular, deductive program verifier for Go that proves memory safety, crash safety, data-race freedom, and user-provided specifications. Gobra is based on separation logic and supports a large subset of Go. Its implementation translates an annotated Go program into the Viper intermediate verification language and uses an existing SMT-based verification backend to compute and discharge proof obligations.


Author(s):  
Sergey Tyurin ◽  
◽  
Dmitii Kovilyaev ◽  
Ekaterina Danilova ◽  
Alexei Gorodilov ◽  
...  

The creation of projects in the Proteus program based on microcontrollers is considered. A classic 8051 microcontroller from Intel is investigated, as well as an STM32F401RE microcontroller from ARM. The development of the simplest programs for use in laboratory classes on programming embedded systems (for example, the "Internet of things") for 8051 – in assembler language, for STM32F401RE – in C language using a special development environment is carried out. The research can be used in laboratory classes on embedded systems programming.


ASCEND 2020 ◽  
2020 ◽  
Author(s):  
Daniel Tellier ◽  
Meyer Millman ◽  
Brian McClelland ◽  
Kate Beatrix Go ◽  
Alice Balayan ◽  
...  

ASCEND 2020 ◽  
2020 ◽  
Author(s):  
Daniel Tellier ◽  
Meyer Millman ◽  
Brian McClelland ◽  
Kate Beatrix Go ◽  
Alice Balayan ◽  
...  

Sign in / Sign up

Export Citation Format

Share Document