In this paper we analyse the logic of the programminglanguagec, where integers used as logical values. The classical logic has several axiom-systems, the oldest one is the axioms of the Boolean-algebra. We analyse h...
详细信息
ISBN:
(纸本)953713802X
In this paper we analyse the logic of the programminglanguagec, where integers used as logical values. The classical logic has several axiom-systems, the oldest one is the axioms of the Boolean-algebra. We analyse how logical laws work in c We also compare some many-valued systems to the logic of c We show that the logic of c is not two-valued logic, neither a "classical many-valued logic". The commutative laws are not justified for all cases, because of the lazy evaluation of conditions. The problem occurs when an evaluation in a condition can produce error message. We present a three-valued non-commutative logic describing the logic of c.
The c programming language is one of the most popular teaching programminglanguages. It is generally considered that the computer programming time that a student spent on his homework directly affects his grade of th...
详细信息
ISBN:
(纸本)9781467302395
The c programming language is one of the most popular teaching programminglanguages. It is generally considered that the computer programming time that a student spent on his homework directly affects his grade of the c programming language. There is little research regarding the correlation of students'. computer programming time and their test grades. The computer programming time, grades of final test and the Zhejiang computer Grade Test Band II (ZcGTBII) of students from a teaching class are collected. The students are divided into two groups based on their programming time. The T-Test is employed to analyze grades of final test and the ZcGTBII of the two groups. Analysis results show that the mean and the passing rates of final test and the ZcGTBII of Group I are greater than those of Group II. Therefore, we conclude that the amount of time students spend practicing programming on computers plays a very important role towards mastering the c programming language.
The c programming language is at least as well known for its absence of spatial memory safety guarantees (i.e., lack of bounds checking) as it is for its high performance. c's unchecked pointer arithmetic and arra...
详细信息
The c programming language is at least as well known for its absence of spatial memory safety guarantees (i.e., lack of bounds checking) as it is for its high performance. c's unchecked pointer arithmetic and array indexing allow simple programming mistakes to lead to erroneous executions, silent data corruption, and security vulnerabilities. Many prior proposals have tackled enforcing spatial safety in c programs by checking pointer and array accesses. However, existing software-only proposals have significant drawbacks that may prevent wide adoption, including: unacceptably high run-time overheads, lack of completeness, incompatible pointer representations, or need for non-trivial changes to existing c source code and compiler infrastructure. Inspired by the promise of these software-only approaches, this paper proposes a hardware bounded pointer architectural primitive that supports cooperative hardware/software enforcement of spatial memory safety for c programs. This bounded pointer is a new hardware primitive datatype for pointers that leaves the standard c pointer representation intact, but augments it with bounds information maintained separately and invisibly by the hardware. The bounds are initialized by the software, and they are then propagated and enforced transparently by the hardware, which automatically checks a pointer's bounds before it is dereferenced. One mode of use requires instrumenting only malloc, which enables enforcement of per-allocation spatial safety for heap-allocated objects for existing binaries. When combined with simple intra-procedural compiler instrumentation, hardware bounded pointers enable a low-overhead approach for enforcing complete spatial memory safety in unmodified c programs.
Since linked lists serve as a bridge to understanding more advanced data structures, we believe that it is critical to identify students' misunderstandings early. We found that students had a good conceptual under...
详细信息
Since linked lists serve as a bridge to understanding more advanced data structures, we believe that it is critical to identify students' misunderstandings early. We found that students had a good conceptual understanding of how to insert and delete nodes in a singly linked list in c. However, many students continued to struggle with c syntax, pointer manipulation, and memory management needed to correctly implement singly linked lists. Students reported that the abstract nature of pointers, relating linked lists to the real world, and prior knowledge about dynamic arrays contributed the most to their difficulties with linked lists in c.
construction of elaborate course is an important measure to improve reform of higher education and realize great-leap-forward development of higher education but how to effetely construct the elaborate course system? ...
详细信息
construction of elaborate course is an important measure to improve reform of higher education and realize great-leap-forward development of higher education but how to effetely construct the elaborate course system? Besides building first-class teaching team, creating first-class management, it is also crucial to construct an elaborate course website with friendly interface, rich recourse and strong interactivity. This paper takes the c programming languagecourse as an example;a web-based computer Aided Instruction (cAI) courseware is constructed. Some novel design ideas and key technologies in the developing process of the platform are described. Presently, the course of "The c programming language" is evaluated as a provincial-level elaborate course in Henan province. The strategies and schemes proposed here can be easily referenced and applied to other similar situations, especially in polytechnic universities in china.
Based on the ontology construction thinking, knowledge base of c programming language is presented. Ontology construction principles, methods and advantages are analyzed, and factors such as the characteristics of kno...
详细信息
Based on the ontology construction thinking, knowledge base of c programming language is presented. Ontology construction principles, methods and advantages are analyzed, and factors such as the characteristics of knowledge structure and c programming language design course are also taken into consideration. construction methods and progress of c programming language are detailed. By this way, the ontology c programming languagecourse knowledge points are linked together, and its structure is also clear, to strengthen the teaching resources management and improve the teachers' and students' curriculum resources sharing and reuse.
The c programming languagecourse is a basiccourse in colleges and universities, whose key teaching points differ slightly with the arrangement of the specialized courses. This paper proposed an integration teaching ...
详细信息
The c programming languagecourse is a basiccourse in colleges and universities, whose key teaching points differ slightly with the arrangement of the specialized courses. This paper proposed an integration teaching method based on the characteristics of the c programming languagecourse itself, combining theory instruction with practice teaching. The students are trained while learning. Thus, the students are able to get their ability in practice trained and improved when they acquire the theoretical knowledge.
We consider the problem of buffer overflows in c programs. This problem is very important because buffer overflows are Suitable targets for security attacks and Sources of serious programs' misbehavior. Buffer ove...
详细信息
ISBN:
(纸本)9789898111517
We consider the problem of buffer overflows in c programs. This problem is very important because buffer overflows are Suitable targets for security attacks and Sources of serious programs' misbehavior. Buffer overflow bugs can be detected at run-time by dynamic analysis, and before run-time by static analysis. In this paper we present a new static, modular approach for automated detection of buffer overflows. Our approach is flow-sensitive and inter-procedural, and it deals with both statically and dynamically allocated buffers. Its architecture is flexible and pluggable - for instance, for checking generated correctness and incorrectness conditions, it can use any external automated theorem prover that follows SMT-LIB standards. The system uses an external and easily extendable knowledge database that stores all the reasoning rules so they are not hard-coded within the system. We also report on Our prototype implementation, the FADO tool, and on its experimental results.
Any cS educator has to explain sooner or later a portion of code or a structured text to learners. The codecast tool http://*** has been specially designed by cS educators and developed initially for MOOcs to replace ...
详细信息
ISBN:
(纸本)9781450351034
Any cS educator has to explain sooner or later a portion of code or a structured text to learners. The codecast tool http://*** has been specially designed by cS educators and developed initially for MOOcs to replace non-interactive screencasts. This workshop is a hands-on lab to codecast: an open-source innovative tool to create in-browser interactive coding tutorials. codecast supports syntax highlighting for over 110 languages and as of 2017 can compile/interpret and execute a subset of the c and Arduino languages. In this workshop, participants will explore how, using our codecast tool, a cS educator can explain the creation of a computer program while their audio as well as their interactions with the code editor and interpreter are being recorded for interactive playback. Workshop participants will furthermore experience how different aspects of the coding process like testing, running, debugging and optimizing can be illustrated with the help of several data, memory and algorithm visualization modules. Participants will create recordings and experience (like learners) how they can be played back interactively by taking control over and modify the coding process at any time. codecast enables the learner to interact directly with the code and experiment with different ideas while listening to the instructor's explanation. The learner can make changes to the code, test it with different inputs, run the code step-by-step to better understand its behavior and visualize other parts of the algorithm or the data. Workshop participants will also integrate their creations in their online curricula.
Reactive systems are interactive programs that react continuously to sequences of activations coming from the external world. Reactive programming leads to a new programming style where one programs in terms of reacti...
详细信息
Reactive systems are interactive programs that react continuously to sequences of activations coming from the external world. Reactive programming leads to a new programming style where one programs in terms of reactions to activations and reasons in a logic of instants. This paper describes an extension of the c programming languagecalled Rc (for 'Reactive c') to program reactive systems. The language Rc is described, then some programming examples are given to illustrate the reactive approach. The main Rc notions come directly from the Esterel synchronous programminglanguage. Finally, the Esterel and Rclanguages are compared.
暂无评论