Evolutionary prototyping is an incremental software development method in which a proof of concept is, step by step, extended towards the final product. This article pleads for a programming approach termed "incr...
详细信息
ISBN:
(纸本)9783642233906
Evolutionary prototyping is an incremental software development method in which a proof of concept is, step by step, extended towards the final product. This article pleads for a programming approach termed "incremental code quality enhancement" when developing software incrementally. However, current programminglanguages are not well suited for incremental code quality enhancement. They are inflexible regarding their use of languagefeatures like typing. access control, contracts. etc. In some languages, the programmer is forced to use them, in others he may not. This article introduces pluggable programming language features, a concept that allows greater flexibility for application programmers without losing control over the use of those features. The approach is demonstrated exemplary by interface specifications for a business information system.
The current software development approach assumes that the external world changes slowly and that software can remain stable for long periods. These closed-world assumptions don't hold in ubiquitous and pervasive ...
详细信息
The current software development approach assumes that the external world changes slowly and that software can remain stable for long periods. These closed-world assumptions don't hold in ubiquitous and pervasive computing settings, where the world is intrinsically open. The need for software that can continuously evolve in an open world is reaching unprecedented levels, but existing approaches to software development can't cope with these new challenges. The more we move toward dynamic and heterogeneous systems, and the more we stress their self-healing and self-adapting capabilities, the more we need new approaches to develop these applications and new ways to structure and program them.
The power and convenience of a programminglanguage may be enhanced for certain applications by permitting treelike data structures to be defined by recursion. This paper suggests a pleasing notation by which such str...
详细信息
The power and convenience of a programminglanguage may be enhanced for certain applications by permitting treelike data structures to be defined by recursion. This paper suggests a pleasing notation by which such structures can be declared and processed; it gives the axioms which specify their properties, and suggests an efficient implementation method. It shows how a recursive data structure may be used to represent another data type, for example, a set. It then discusses two ways in which significant gains in efficiency can be made by selective updating of structures, and gives the relevant proof rules and hints for implementation. The examples show that a certain range of applications in symbol manipulation can be efficiently programmed without introducing the low-level concept of a reference into a high-level programminglanguage.
As the impact of vulnerabilities increases in practice, it is imperative for programminglanguages to include security as a first-class design consideration. While a number of security-related languagefeatures have b...
详细信息
ISBN:
(纸本)9781450381789
As the impact of vulnerabilities increases in practice, it is imperative for programminglanguages to include security as a first-class design consideration. While a number of security-related languagefeatures have been proposed to address this need, in many cases, we do not know enough about whether it is practical and useful to build software systems in languages with these features. In this paper, we begin to investigate this question, using a case study methodology. The setting of our case study is Wyvern, a recently designed language we selected because it incorporates three advanced security-related features: capability safety for enforcing the principle of least privilege, an effect system for tracking the secure use of resources, and a language extension feature that mitigates command injection. In our case study, we built a small standard I/O library, seeking to use the new languagefeatures to create a library that is less vulnerable to misuse and can serve as a building block for more secure programs, compared to conventional I/O library designs. Our study suggests that these features are indeed practicable and useful, and thus potentially promising for inclusion in other future language designs. It also sheds light on the value and cost of these features and suggests directions for future research on security-focused language design.
暂无评论