In the past, the invention of a new programming paradigm led to new programming languages. We show that C++ is a perfectly adequate dataflow programming language, given some suitable definitions. Reasons are mentioned...
详细信息
ISBN:
(纸本)0780339061
In the past, the invention of a new programming paradigm led to new programming languages. We show that C++ is a perfectly adequate dataflow programming language, given some suitable definitions. Reasons are mentioned for believing that this is also the case for logic and functional programming. We conclude that object-orientedprogramming may remove the need for languages motivated by specific programming paradigms.
In this paper, we discuss methods and concepts of object oriented programming (OOP) for graphical modeling. We illustrate through a set of examples how geometrical models are built, and visualized solutions to logisti...
详细信息
ISBN:
(纸本)9789532330762
In this paper, we discuss methods and concepts of object oriented programming (OOP) for graphical modeling. We illustrate through a set of examples how geometrical models are built, and visualized solutions to logistics network design problems are obtained. We develop a methodological framework for visual programming and linking of graphical models concepts, and introduce the basic concepts of graphical models: lines, arrows, nodes and coordinates. We use block diagrams and object-orientedprogramming to program and link the concepts of graphical models using Visual Basic for Excel.
object-orientedprogramming (OOP) is a new paradigm and methodology for software development and design. This paper is a ease study of applying OOP to the programming of the TMS320C30 signal processors in time-critica...
详细信息
Modern software systems are increasingly long-lived. In order to gracefully evolve these systems as they address new requirements, developers need to navigate effectively between domain concepts and the code that addr...
详细信息
ISBN:
(纸本)9783662496657;9783662496640
Modern software systems are increasingly long-lived. In order to gracefully evolve these systems as they address new requirements, developers need to navigate effectively between domain concepts and the code that addresses those domains. One of the original promises of object-orientation was that the same object-oriented models would be used throughout requirements analysis, design and implementation. Software systems today however are commonly constructed from a heterogeneous "language soup" of mainstream code and dedicated DSLs addressing a variety of application and technical domains. Has object-orientedprogramming outlived its purpose? In this essay we argue that we need to rethink the original goals of object-orientation and their relevance for modern software development. We propose as a driving maxim, "programming is Modeling," and explore what this implies for programming languages, tools and environments. In particular, we argue that: (1) source code should serve not only to specify an implementation of a software system, but should encode a queryable and manipulable model of the application and technical domains concerned;(2) IDEs should exploit these domain models to enable inexpensive browsing, querying and analysis by developers;and (3) barriers between the code base, the running application, and the software ecosystem at large need to be broken down, and their connections exploited and monitored to support developers in comprehension and evolution tasks.
Code reuse attacks such as return-orientedprogramming (ROP) have become prevalent techniques to exploit memory corruption vulnerabilities in software programs. A variety of corresponding defenses has been proposed, o...
详细信息
ISBN:
(纸本)9781467369497
Code reuse attacks such as return-orientedprogramming (ROP) have become prevalent techniques to exploit memory corruption vulnerabilities in software programs. A variety of corresponding defenses has been proposed, of which some have already been successfully bypassed-and the arms race continues. In this paper, we perform a systematic assessment of recently proposed CFI solutions and other defenses against code reuse attacks in the context of C++. We demonstrate that many of these defenses that do not consider object-oriented C++ semantics precisely can be generically bypassed in practice. Our novel attack technique, denoted as counterfeit object-orientedprogramming (COOP), induces malicious program behavior by only invoking chains of existing C++ virtual functions in a program through corresponding existing call sites. COOP is Turing complete in realistic attack scenarios and we show its viability by developing sophisticated, real-world exploits for Internet Explorer 10 on Windows and Firefox 36 on Linux. Moreover, we show that even recently proposed defenses (CPS, T-VIP, vfGuard, and VTint) that specifically target C++ are vulnerable to COOP. We observe that constructing defenses resilient to COOP that do not require access to source code seems to be challenging. We believe that our investigation and results are helpful contributions to the design and implementation of future defenses against control-flow hijacking attacks.
The importance of teaching a solid design methodology is well-recognized and is the goal of many software development courses. There is an ongoing debate concerning how to approach the learning and teaching of this sk...
详细信息
ISBN:
(纸本)9781479931903
The importance of teaching a solid design methodology is well-recognized and is the goal of many software development courses. There is an ongoing debate concerning how to approach the learning and teaching of this skill, i.e., by focusing on "design first" by means of the UML formalism or by "OO programming first", deferring the development of UML specifications. This work presents a teaching experience and curriculum content where a "design-first" approach was used to teach objectoriented Design, incrementally interleaved with object oriented programming aimed at implementing the modeled software through laboratory activities. Working in groups allowed the students to improve communication and collaboration skills, and the use of web 2.0 technologies, such as a wiki, allowed for better course management and for the deployment of a project involving all the students. This approach was used in two year-long courses with students who had slightly different backgrounds and dispositions. Also presented are a preliminary analysis of the written examinations and laboratory exercises;an analysis of common errors and student misconceptions and a preliminary quantitative measure of the results.
In this paper, we describe an implementation-independent object-oriented interface for commercial and academic Constraint Solvers. This serves as a basis for evaluating different Constraint Solvers and for developing ...
详细信息
ISBN:
(数字)9783540366072
ISBN:
(纸本)3540009868
In this paper, we describe an implementation-independent object-oriented interface for commercial and academic Constraint Solvers. This serves as a basis for evaluating different Constraint Solvers and for developing solver-independent applications. We show, how applications can use the interface, which solvers are already integrated into the framework and how additional solvers can be added. Furtermore, we provide to the community the described system as real Java packages via Internet, that even includes a basic but powerful Constraint Solver.
We analyse how inheritance of synchronization constraints should be supported. The conclusion of our analysis is that inheritance of synchronization constraints should take the form of incrementally more restrictive c...
详细信息
The use of Java in the first courses of Computing, Computer Sciences and similar degrees is widely accepted. However, many programming professors realize that while is possible for students to use an object-oriented l...
详细信息
ISBN:
(纸本)9788360810484
The use of Java in the first courses of Computing, Computer Sciences and similar degrees is widely accepted. However, many programming professors realize that while is possible for students to use an object-oriented language, is also possible to program with them without applying an object-oriented mentality. This paper defends the use of Smalltalk programming language as the best option for students to learn object-orientedprogramming and acquiring an object-oriented mentality at the same time. This study is based on three years of experience in a course on Software Design.
A unified language architecture for an advanced reversible object-oriented language is described. The design and implementation choices made for a tree-walking interpreter and source-language inverter are discussed, a...
详细信息
ISBN:
(纸本)9783030798369;9783030798376
A unified language architecture for an advanced reversible object-oriented language is described. The design and implementation choices made for a tree-walking interpreter and source-language inverter are discussed, as well as the integration with an existing monadic parser, type checker and PISA compiler backend. A demonstration of the web interface and the interactions required to interpret, compile and invert reversible object-oriented programs is given. Our aim is that this platform will make reversible programming approachable to a wider community.
暂无评论