Nowadays, Computer Science (CS) students must cope with continuous challenges related to programming skill acquisition. In some occasions, they have to deal with the internals of memory management (pointers, pointer a...
详细信息
Nowadays, Computer Science (CS) students must cope with continuous challenges related to programming skill acquisition. In some occasions, they have to deal with the internals of memory management (pointers, pointer arithmetic, and heap management) facing a vision of programming from the low abstraction level offered by C. Even using C++ and references, not all scenarios where objects or collections of objects need to be managed can be covered. Based on the difficulties identified when dealing with such low-level abstractions, the C-Sim application, aimed at learning these concepts in an easy way, has been developed. To support the tool, the C programming language was selected. It allows showing concepts, remaining as close as possible both to the hardware and the operating system. To validate C-Sim, pre and posttests were filled in by a group of 60 first-year CS students, who employed the tool to learn about memory management. Grades of students using C-Sim were also obtained and compared with those that did not use the tool the former academic year. As main outcomes, 82.26% of students indicated that they had improved programming and memory management knowledge, and 83.64% pointed out that the use of this type of tools improves the understanding and quality of the practice lessons. Furthermore, the marks of students have significantly increased. Finally, C-Sim was designed from the ground up as a learning aid and can be useful for lecturers, who can complement their lessons using interactive demonstrations. Students can also employ it to experiment and learn autonomously.
Ensuring safe program operation is crucial for systems programming, and memory safety is a significant aspect of this. This paper assesses the memory safety strategies used in Rust and C++ programming languages. Rust ...
详细信息
Ensuring safe program operation is crucial for systems programming, and memory safety is a significant aspect of this. This paper assesses the memory safety strategies used in Rust and C++ programming languages. Rust is a modern language that has become popular due to its focus on safety, performance, and concurrency, whereas C++ is known for its efficiency and low-level program- ming capabilities. The analysis compares and contrasts the memory safety features of both languages, including Rust's ownership and borrowing model and C++’s manual memory management techniques. Additionally, the study examines the development tools available for both languages and compares ease of use and productivity. The analysis shows that Rust has several memory safety advantages over C++. Rust's ownership and borrowing model enables safe memory management without requiring manual intervention. By enforcing strict rules for memory usage, the compiler in Rust prevents typical memory-related errors like null and dangling pointers. However, in contrast to Rust, C++ provides more low-level hardware control but needs manual memory management, exposing it to memory errors such as buffer overflows and memory leaks. Moreover, Rust's memory safety features simplify the development of secure and dependable code, especially for applications with crucial security requirements. In con- trast, C++ demands significant memory management expertise to avoid memory-related errors. In conclusion, Rust offers several memory safety benefits over C++, making it a superior choice for applications with critical safety needs. However, the selection of language ultimately depends on the specific project requirements and the development team's experience and preferences.
The C language is a fine tool for writing compact and efficient programs. It is relatively easy to produce good compilers for, and the number of tools available for supporting program- ming in C is large, especially i...
详细信息
The C language is a fine tool for writing compact and efficient programs. It is relatively easy to produce good compilers for, and the number of tools available for supporting program- ming in C is large, especially in its ‘home environment’, the UNM system. However, C'S facilities for structuring programs were, until recently, rather limited. To remedy this situation, a data abstraction facility, called classes, was added. The class concept described here has benefitted from the experience gained through a year's use. It is now in use at close to a hundred installations. The guiding principles of the design of C classes were simplicity both in concept and in implementation. Smooth blending of the new facilities into the existing C programming environment was considered essential. Classes can be used without sacrificing the run-time efficiency expected from C. This paper presents some of the reasons why C classes are what they are.
One of the difficulties faced in implementing information management and retrieval systems is that each case seems to present its own special complexities. As a result information retrieval systems typically fall behi...
详细信息
ISBN:
(纸本)9781450373449
One of the difficulties faced in implementing information management and retrieval systems is that each case seems to present its own special complexities. As a result information retrieval systems typically fall behind their programming schedule and have many bugs when delivered. In this paper a set of basic operations on types of files are defined. These operations are intended to fulfill the same role for information retrieval systems programmers that functions such as LOG(X) fill for mathematical applications programmers.. they should make the job very much easier. The file operations have been implemented as a run-time package written in FORTRAN IV and Burroughs Extended Algol. The approach has been used to develop three different information management systems; an APL interactive computing system, a generalized information retrieval system, and a specialized information retrieval system for map oriented data. These systems are described.
The “hands-on” laboratory approach to teaching operating systems has been used at West Virginia University since August 1971 [3, 6, 8]. In 1977 a Digital Equipment Corporation (DEC) PDP-11/34 system replaced the IBM...
详细信息
ISBN:
(纸本)9780897910361
The “hands-on” laboratory approach to teaching operating systems has been used at West Virginia University since August 1971 [3, 6, 8]. In 1977 a Digital Equipment Corporation (DEC) PDP-11/34 system replaced the IBM 1130 system previously used for the course. The course is now using an (DEC) LSI-11 and is much *** paper focuses on the student projects which are the major part of the course. The “hands-on” laboratory course as currently being taught is discussed and compared to other techniques for teaching operating systems.
Many modern extensible systems, such as Java and the SPIN operating system, depend on type safety for memory protection. Unfortunately, current type-safe languages do not support systems programming well, because they...
详细信息
暂无评论