Fortran has long been the mother-tongue of the scientificcommunity. This note looks at the c programming language from the viewpoint of numerical computing with the emphasis placed on econometric applications. ccan ...
详细信息
Fortran has long been the mother-tongue of the scientificcommunity. This note looks at the c programming language from the viewpoint of numerical computing with the emphasis placed on econometric applications. ccan be used as a replacement for other lower level programminglanguages, and also a replacement or as a complement to higher level matrix programminglanguages such as GAUSS, MATLAB, Ox, and S-PLUS.
SimRoot, a geometric simulation model of plant root systems, is described. This model employs a data structure titled the Extensible Tree, which is well suited to the type of data required to model root systems. As im...
详细信息
SimRoot, a geometric simulation model of plant root systems, is described. This model employs a data structure titled the Extensible Tree, which is well suited to the type of data required to model root systems. As implemented on Silicon Graphics workstations, the data structure and visualization code provides for continuous viewing of the simulated root system during growth. SimRoot differs from existing models in the explicit treatment of spatial heterogeneity of physiological processes in the root system, and by inclusion of a kinematic treatment of root axes. Examples are provided of the utility of the model in estimating the fractal geometry of simulated root systems in 1, 2, and 3 dimensional space. We envision continued development of the model to incorporate competition from neighboring root systems, linkage with crop simulation models to simulate root-shoot interactions, explicit treatment of soil heterogeneity, and plasticity of root responses to soil factors such as presence of mycorrhizal associations.
This paper presents a methodology for automated modular verification of c programs against specifications written in separation logic. The distinguishing features of the approach are representation of the c memory mod...
详细信息
This paper presents a methodology for automated modular verification of c programs against specifications written in separation logic. The distinguishing features of the approach are representation of the c memory model in separation logic by means of rewrite rules suitable for automation and the careful integration of an SMT solver behind the separation logic prover to guide the proof search.
Systems code often requires fine-grained control over memory layout and pointers, expressed using low-level (e.g., bitwise) operations on pointer values. Since these operations go beyond what basic pointer arithmetic ...
详细信息
Systems code often requires fine-grained control over memory layout and pointers, expressed using low-level (e.g., bitwise) operations on pointer values. Since these operations go beyond what basic pointer arithmetic in c allows, they are performed with the help of integer-pointer casts. Prior work has explored increasingly realistic memory object models for c that account for the desired semantics of integer-pointer casts while also being sound w.r.t. compiler optimisations, culminating in PNVI-ae-udi, the preferred memory object model in ongoing discussions within the ISO WG14 c standards committee. However, its complexity makes it an unappealing target for verification, and no tools currently exist to verify c programs under PNVI-ae-udi. In this paper, we introduce VIP, a newmemory object model aimed at supporting c verification. VIP sidesteps the complexities of PNVI-ae-udi with a simple but effective idea: a new construct that lets programmers express the intended provenances of integer-pointer casts explicitly. At the same time, we prove VIP compatible with PNVI-ae-udi, thus enabling verification on top of VIP to benefit from PNVI-ae-udi's validation with respect to practice. In particular, we build a verification tool, Refinedc-VIP, for verifying programs under VIP semantics. As the name suggests, Refinedc-VIP extends the recently developed Refinedc tool, which is automated yet also produces foundational proofs in coq. We evaluate Refinedc-VIP on a range of systems-code idioms, and validate VIP's expressiveness via an implementation in the cerberus c semantics.
Low-level systems code often needs to interact with data, such as page table entries or network packet headers, in which multiple pieces of information are packaged together as bitfield components of a single machine ...
详细信息
Low-level systems code often needs to interact with data, such as page table entries or network packet headers, in which multiple pieces of information are packaged together as bitfield components of a single machine integer and accessed via bitfield manipulations (e.g., shifts and masking). Most existing approaches to verifying such code employ SMT solvers, instantiated with theories for bit vector reasoning: these provide a powerful hammer, but also significantly increase the trusted computing base of the verification toolchain. In this work, we propose an alternative approach to the verification of bitfield-manipulating systems code, which we call BFF. Building on the Refinedc framework, BFF is not only highly automated (as SMT-based approaches are) but also foundationalDi.e., it produces a machine-checked proof of program correctness against a formal semantics for c programs, fully mechanized in coq. Unlike SMT-based approaches, we do not try to solve the general problem of arbitrary bit vector reasoning, but rather observe that real systems code typically accesses bitfields using simple, well-understood programming patterns: the layout of a bit vector is known up front, and its bitfields are accessed in predictable ways through a handful of bitwise operations involving bit masks. correspondingly, we center our approach around the concept of a structured bit vector-i.e., a bit vector with a known bitfield layout-which we use to drive simple and predictable automation. We validate the BFF approach by verifying a range of bitfield-manipulating c functions drawn from real systems code, including page table manipulation code from the Linux kernel and the pKVM hypervisor.
Theoretical methods in chemistry frequently involve the tedious solution of complex algebraic equations. Then the solutions, sometimes still quite complex, are usually hand-coded by a programmer into an efficient comp...
详细信息
Theoretical methods in chemistry frequently involve the tedious solution of complex algebraic equations. Then the solutions, sometimes still quite complex, are usually hand-coded by a programmer into an efficient computer language. During this procedure it is all too easy to make an error which will go undetected. A better approach would be to introduce the computer at an even earlier stage in the development of the theory by programming it to first solve the set of equations and then compile the solution into an efficient computer language. In this research a program has been written in the c programming language which can efficiently compute the quasivacuum expectation value of a product of creation and annihilation operators and scalar arrays. The terms in the resulting expressions are then transformed into a canonical form so that all equivalent terms can be combined. Finally, the equations are compiled into a simple representation which can be rapidly interpreted by a Fortran program. This symbol manipulator has been applied to open-shell coupled cluster theory. Two coupled cluster methods using high-spin open-shell references are presented. In one of these methods, the cluster operator contains the unitary group generators, and products thereof, which generate all single and double excitations with respect to the reference. The other uses a simplified cluster operator which generates equations that must be spin-projected. These methods are compared to other descriptions of electron correlation for the cH2 singlet-triplet splitting and the NH2 potential energy surface.
According to teaching practice, the paper analyzes the problem in teaching of the course of clanguageprogramming of noncomputer specialty, declares the method of teaching innovation and discusses the reformation of ...
详细信息
ISBN:
(纸本)9781424435197
According to teaching practice, the paper analyzes the problem in teaching of the course of clanguageprogramming of noncomputer specialty, declares the method of teaching innovation and discusses the reformation of teaching mode. Practice of teaching innovation has proved that we have achieved better results in training students' ability of thinking and innovation, and improved the teaching goal of the ability of practice.
ISAAcS (interactive structure analysis of amorphous and crystalline systems) is a cross-platform program developed to analyze the structural characteristics of three-dimensional structure models built by computer simu...
详细信息
ISAAcS (interactive structure analysis of amorphous and crystalline systems) is a cross-platform program developed to analyze the structural characteristics of three-dimensional structure models built by computer simulations. The models may have any degree of periodicity (i.e. crystallinity) and local symmetry. The following structural information is computed from the models: total and partial radial distribution functions and structure factors for X-ray or neutron scattering, coordination numbers, bond-angle and near atomic neighbor distributions, bond-valence sums, ring statistics, and spherical harmonics invariants. The information may be visualized conveniently and stored for further use.
A required sophomore course on microcontrollers and computer architecture was designed and offered for the first time in 2009 to expose our electrical engineering (EE) sophomore students to microcontroller-based appli...
详细信息
ISBN:
(纸本)9781424462599
A required sophomore course on microcontrollers and computer architecture was designed and offered for the first time in 2009 to expose our electrical engineering (EE) sophomore students to microcontroller-based applications so that they could appreciate and be exposed to fundamentals of electrical and computer engineering (EcE) through hardware and software design and interfacing. The course also helps students to obtain a broad view of various subjects of EcE from circuits, signals, digital logic, microcontrollers, c and assembly languageprogramming to system design, implementation and measurement so that they can make a well informed decision on whether to continue to major in EE. The course builds a foundation for future classes that may require instrumentation or microcontroller-based applications such as those on communications, control, power electronics as well as junior and senior design courses. In addition, the students are required to purchase most of the hardware components for the course so that they can use the components for future projects.
This paper addresses the difficulties students face when learning and practicing pointers (i.e., variables storing the memory address of another variable as its value) in a computer programmingclass. To improve their...
详细信息
ISBN:
(纸本)9798400716195
This paper addresses the difficulties students face when learning and practicing pointers (i.e., variables storing the memory address of another variable as its value) in a computer programmingclass. To improve their understanding and practice, we have developed Tartare, an automaticc pointer statement and feedback generator. By creating statements with automatic feedback, students are given the opportunity to practice at will, each time on a different instance. In addition, if the statement must be done remotely and accounts in the final grade, Tartare discourages academic dishonesty since each student faces their own statement to solve. This paper describes the techniques implemented in Tartare, relying on a pattern template-based approach. The statement variety of Tartare is evaluated. Finally, current limitations and further improvements are discussed. We believe our approach for Tartare can be transposed for automatic exercises generation in various other fields.
暂无评论