Mobile device has fewer resources compare to desktop computers. Mobile application development is in the need of appropriate strategies in view of resource utilizations. Although some other design strategies are requi...
详细信息
ISBN:
(纸本)9781479905614
Mobile device has fewer resources compare to desktop computers. Mobile application development is in the need of appropriate strategies in view of resource utilizations. Although some other design strategies are required for software development, programming paradigm is the core. The overall aim of this study is to formulate the programming paradigms whereby achieve the optimal resource utilizations by mobile applications. As a part of this objective, this paper aims to determine whether the improper use of programming paradigm concepts consume more memory and / or CPU time. Imperative programming paradigm concepts have been used as a sample for this study. Imperative programming concepts such as looping, branching and arrays have been experimented. The results of the experiments and case studies proved that, improper use of programming concepts lead to more memory consumptions and/or take more time to response. In conclusion use of appropriate paradigms in mobile application design possibly will optimize the response time and memory utilization.
Programmers often need to initialise circular structures of objects. Initialisation should be safe (so that programs can never suffer null pointer exceptions or otherwise observe uninitialised values) and modular (so ...
详细信息
ISBN:
(纸本)9783642390388
Programmers often need to initialise circular structures of objects. Initialisation should be safe (so that programs can never suffer null pointer exceptions or otherwise observe uninitialised values) and modular (so that each part of the circular structure can be written and compiled separately). Unfortunately, existing languages do not support modular circular initialisation: programmers in practical languages resort to Tony Hoare's "Billion Dollar Mistake": initialising variables with nulls, and then hoping to fix them up afterward. While recent research languages have offered some solutions, none fully support safe modular circular initialisation. We present placeholders, a straightforward extension to object-oriented languages that describes circular structures simply, directly, and modularly. In typed languages, placeholders can be described by placeholder types that ensure placeholders are used safely. We define an operational semantics for placeholders, a type system for placeholder types, and prove soundness. Incorporating placeholders into object-oriented languages should make programs simultaneously simpler to write, and easier to write correctly.
Micropatterns and nanopatterns have been previously demonstrated to be useful techniques for object-oriented program comprehension. In this paper, we use a similar approach for identifying structurally similar fragmen...
详细信息
ISBN:
(纸本)9783319026541;9783319026534
Micropatterns and nanopatterns have been previously demonstrated to be useful techniques for object-oriented program comprehension. In this paper, we use a similar approach for identifying structurally similar fragments in grammars in a broad sense (contracts for commitment to structure), in particular parser specifications, metamodels and data models. Grammatical micropatterns bridge the gap between grammar metrics, which are easy to implement but hard to assign meaning to, and language design guidelines, which are inherently meaningful as stemming from current software language engineering practice but considerably harder to formalise.
programming environments based on an iconic, flowchart-based notation have been widely used in the context of introducing novices to programming. These tools were initially heavily based on the technology of structure...
详细信息
ISBN:
(纸本)9781467361101;9781467361118
programming environments based on an iconic, flowchart-based notation have been widely used in the context of introducing novices to programming. These tools were initially heavily based on the technology of structure editing, with the aim of alleviating the burden of focusing on the syntactic details of programming languages and giving the chance to focus on acquiring problem solving skills. The technology of program animation was also utilized, in order to allow for a better comprehension of programming structures and flow of control. Furthermore, the ability of generating syntactically correct source code from the flowchart was integrated into these tools. Recently, several advanced features were added in flowchart-based programming environments, such as support for collaborative activities and distributed pair programming and usage in mobile devices. In this paper, a thorough review of programming environments based on an iconic notation is carried out with a focus on the support provided for introducing novices to programming, as well as other important software engineering issues in a simplified and straightforward manner. Proposals for research on this field and opportunities for a better teaching and learning of software engineering are presented.
Task parallelism is ubiquitous in modern applications for event-based, distributed, or reactive systems. In this type of programming, the ability to cancel a running task arises as a critical feature. Although there a...
详细信息
ISBN:
(纸本)9783642399541;9783642399558
Task parallelism is ubiquitous in modern applications for event-based, distributed, or reactive systems. In this type of programming, the ability to cancel a running task arises as a critical feature. Although there are a variety of cancellation techniques, a comprehensive account of their characteristics is missing. This paper provides a classification of task cancellation patterns, as well as a detailed analysis of their advantages and disadvantages. One promising approach is cooperative cancellation, where threads must be continuously prepared for external cancellation requests. Based on this pattern, we propose an extension of SCOOP, an object-oriented concurrency model.
Teaching object oriented programming (OOP) is a difficult task, both for teachers who have to find the best way to illustrate the concepts and for students who have to understand them. Although the OOP paradigm and it...
详细信息
ISBN:
(纸本)9783540699231
Teaching object oriented programming (OOP) is a difficult task, both for teachers who have to find the best way to illustrate the concepts and for students who have to understand them. Although the OOP paradigm and its concepts reflect the "real world", it has been shown that students find hard to understand and internalize the OOP concepts such as encapsulation, inheritance and polymorphism. This paper describes difficulties in understanding OOP in an Advanced Java course given at the Computer Science Department of the Open University of Israel. We present a typical question which focuses on several aspects of OOP. We discuss the students' answers and point out typical hardships in grasping the topic.
We argue that the limit of the propagation of the heap effects of a source code modification is determined by the aliasing structure of method parameters in a trace of the method calls that cross a boundary which part...
详细信息
ISBN:
(纸本)9783939897637
We argue that the limit of the propagation of the heap effects of a source code modification is determined by the aliasing structure of method parameters in a trace of the method calls that cross a boundary which partitions the heap. Further, that this aliasing structure is sufficient to uniquely determine the state of the part of the heap which has not been affected. And we give a definition of what it means for a part of the heap to be unaffected by a source code modification. This can be used to determine the correctness of a refactoring.
Groovy is a dynamic language based on Java. Groovy enables the development of new operators in order to overcome the language's own limitations. The extensions to Groovy can be made through Abstract Syntax Tree (A...
详细信息
ISBN:
(纸本)9783642369810
Groovy is a dynamic language based on Java. Groovy enables the development of new operators in order to overcome the language's own limitations. The extensions to Groovy can be made through Abstract Syntax Tree (AST) Transformations. In this paper, we present two AST Transformations to monitor variables and methods in an AspectJ inspired manner. These transformations make it possible to execute custom closures (lambda expressions) at specific points of the application, enabling the improvement of software development.
Analyzing and understanding the evolution of large object-oriented software systems is an important but difficult task in which matching algorithms play a fundamental role. An error-tolerant graph matching (ETGM) algo...
详细信息
This paper presents a game-like module titled Java Ninja that is designed to help students understand the concept of Inheritance, which is one of the most important concepts of object-orientedprogramming (OOP). This ...
详细信息
暂无评论