NASA Technical Reports Server (Ntrs) 19950007635: Development of Visual 3D Virtual Environment for Control Software by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 19950007635: Development of Visual 3D Virtual Environment for Control Software by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 20050160231: Evaluation of Swift Start Tcp in Long-Delay Environment by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 20050160231: Evaluation of Swift Start Tcp in Long-Delay Environment by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 19960054372: [formian 2 and a Formian Function for Processing Polyhedric Configurations] by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 19960054372: [formian 2 and a Formian Function for Processing Polyhedric Configurations] by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 19970022822: Opus: a Coordination Language for Multidisciplinary Applications by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 19970022822: Opus: a Coordination Language for Multidisciplinary Applications by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 20020061315: Real-Time Payload Control and Monitoring on the World Wide Web by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 20020061315: Real-Time Payload Control and Monitoring on the World Wide Web by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 19970006974: the Applicability of Proposed Object-Oriented Metrics to Developer Feedback in Time to Impact Development by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 19970006974: the Applicability of Proposed Object-Oriented Metrics to Developer Feedback in Time to Impact Development by NASA Technical Reports Server (Ntrs); published by
The number of students taking high school computer science classes is growing. Increasingly, these students are learning with graphical, block-based programming environments either in place of or prior to traditional ...
详细信息
The number of students taking high school computer science classes is growing. Increasingly, these students are learning with graphical, block-based programming environments either in place of or prior to traditional text-based programming languages. Despite their growing use in formal settings, relatively little empirical work has been done to understand the impacts of using block-based programming environments in high school classrooms. In this article, we present the results of a 5-week, quasi-experimental study comparing isomorphic block-based and text-based programming environments in an introductory high school programming class. The findings from this study show students in both conditions improved their scores between pre-and postassessments;however, students in the blocks condition showed greater learning gains and a higher level of interest in future computing courses. Students in the text condition viewed their programming experience as more similar to what professional programmers do and as more effective at improving their programming ability. No difference was found between students in the two conditions with respect to confidence or enjoyment. The implications of these findings with respect to pedagogy and design are discussed, along with directions for future work.
Spatial errors (e.g., buffer overflows) continue to be one of the dominant threats to software reliability and security in C/C++ programs. Presently, the software industry typically enforces spatial memory safety by i...
详细信息
Spatial errors (e.g., buffer overflows) continue to be one of the dominant threats to software reliability and security in C/C++ programs. Presently, the software industry typically enforces spatial memory safety by instrumentation. Due to high overheads incurred in bounds checking at runtime, many program inputs cannot be exercised, causing some input-specific spatial errors to go undetected in today's commercial software. This paper introduces a new compile-time approach for reducing bounds checking overheads based on the notion of weakest precondition (WP). The basic idea is to guard a bounds check at a pointer dereference inside a loop, where the WP-based guard is hoisted outside the loop, so that its falsehood implies the absence of out-of-bounds errors at the dereference, thereby avoiding the corresponding bounds check inside the loop. This WP-based approach is applicable to any spatial-error detection approach (in software or hardware or both). To evaluate the effectiveness of our approach, we take SOFTBOUND, a compile-time tool with an open-source implementation in low-level virtual machine (LLVM), as our baseline. SOFTBOUND adopts a pointer-based checking scheme with disjoint metadata, making it a state-of-the-art tool in providing compatible and complete spatial safety for C. Our new tool, called WPBOUND, is a refined version of SOFTBOUND, also implemented in LLVM, by incorporating our WP-based compiler approach comprising both intra and interprocedural optimizations. For a set of 20 C benchmarks selected from SPEC andMiBench, WPBOUND reduces the average runtime overhead of SOFTBOUND from 77% to 47% (by a reduction of 39%), with small code size increases.
暂无评论