The past decade has witnessed the increasing demands on data-driven business intelligence that led to the proliferation of data-intensive applications. A managed object-orientedprogramming language such as Java is of...
详细信息
ISBN:
(纸本)9781450328357
The past decade has witnessed the increasing demands on data-driven business intelligence that led to the proliferation of data-intensive applications. A managed object-orientedprogramming language such as Java is often the developer's choice for implementing such applications, due to its quick development cycle and rich community resource. While the use of such languages makes programming easier, their automated memory management comes at a cost. When the managed runtime meets Big Data, this cost is significantly magnified and becomes a scalability-prohibiting bottleneck. This paper presents a novel compiler framework, called FACADE, that can generate highly-efficient data manipulation code by automatically transforming the data path of an existing Big Data application. The key treatment is that in the generated code, the number of runtime heap objects created for data types in each thread is (almost) statically bounded, leading to significantly reduced memory management cost and improved scalability. We have implemented FACADE and used it to transform 7 common applications on 3 real-world, already well-optimized Big Data frameworks: GraphChi, Hyracks, and GPS. Our experimental results are very positive: the generated programs have (1) achieved a 3%-48% execution time reduction and an up to 88x GC reduction;(2) consumed up to 50% less memory, and (3) scaled to much larger datasets.
objectoriented design is more powerful than function oriented design. Previously the software was developed by using functional or structural approach but due to high quality demand, traditional metrics (i.e. Cycloma...
详细信息
ISBN:
(纸本)9783319120126;9783319120119
objectoriented design is more powerful than function oriented design. Previously the software was developed by using functional or structural approach but due to high quality demand, traditional metrics (i.e. Cyclomatic complexity, lines of code, comment percentage) cannot be applied. objectoriented metric assures to reduce cost and maintenance effort by serving earlier predictors to estimate software faults. The objectoriented Analysis and Design of software gives the many benefits like reusability, decomposition of problems in to easily understandable objects. This paper presents the different objectoriented metrics qualities in different dimensions (i.e. size, complexity, quality, reliability, etc). objectoriented metrics are used to analyze the complexity of any objectoriented language (i. e. java, c++, C Sharp). In this paper we have taken the different sets of programs using C++ and Java. It concludes that Java dominants the C++. The popularity is only due to measuring the software complexity, quality and estimation size of the projects.
object-constraint programmingsystems integrate declarative constraint solving with imperative, object-orientedlanguages, seamlessly providing the power of both paradigms. However, experience with object-constraint s...
详细信息
object-constraint programmingsystems integrate declarative constraint solving with imperative, object-orientedlanguages, seamlessly providing the power of both paradigms. However, experience with object-constraint systems has shown that giving too much power to the constraint solver opens up the potential for solutions that are surprising and unintended as well as for complex interactions between constraints and imperative code. On the other hand, systems that overly limit the power of the solver, for example by disallowing constraints involving mutable objects, object identity, or polymorphic message sends, run the risk of excluding the core object-oriented features of the language from the constraint part, and consequently not being able to express declaratively a large set of interesting problem solutions. In this paper we present design principles that tame the power of the constraint solver in object-constraint languages to avoid difficult corner cases and surprising solutions while retaining the key features of the approach, including constraints over mutable objects, constraints involving object identity, and constraints on the results of message sends. We present our solution concretely in the context of the Babelsberg object-constraint language framework, providing both an informal description of the resulting language and a formal semantics for a core subset of it. We validate the utility of this semantics with an executable version that allows us to run test programs and to verify that they provide the same results as existing implementations of Babelsberg in JavaScript, Ruby, and Smalltalk.
Reactive programming and event-based programming are two closely related programming styles that are becoming ever more important with the advent of advanced HCI technology and the ever increasing requirement for appl...
详细信息
ISBN:
(纸本)9781450337229
Reactive programming and event-based programming are two closely related programming styles that are becoming ever more important with the advent of advanced HCI technology and the ever increasing requirement for applications to run on the web or on collaborating mobile devices. A number of publications about middleware and language design - so-called reactive and event-based languages and systems - have already seen the light, but the field still raises several questions. For example, the interaction with mainstream language concepts is poorly understood, implementation technology is in its infancy and modularity mechanisms are almost totally lacking. Moreover, large applications are still to be developed and patterns and tools for developing reactive applications is an area that is vastly unexplored. This workshop gathers researchers in reactive and event-based languages and systems. The goal of the workshop is to exchange new technical research results and to define better the field by coming up with taxonomies and overviews of the existing work.
The field of enterprise modeling (EM) is facing a number of challenges. Some of them result out of the application of informal or semi-formal modeling languages having usually semantics similar to object-oriented prog...
详细信息
ISBN:
(纸本)9781467373401
The field of enterprise modeling (EM) is facing a number of challenges. Some of them result out of the application of informal or semi-formal modeling languages having usually semantics similar to object-orientedprogramminglanguages. The EM community has recognized ontologies as a promising way to address some of the existing problems. There is, however, a striking lack of consensus about understanding of ontology in the Information systems domain. The multiplicity of different understandings leads to an increased diversity of proposed approaches. To contribute to a better understanding of the role of ontologies in the realm of EM and of requirements they would need to meet, we distinguish and discuss different categories of applications of ontologies in the EM field. Based on their analysis, we identify the main benefits resulting out of the application of ontologies and point to the main challenges hampering their adoption. This allows to assess the maturity of this field and to identify directions of future research.
Traversing complex Abstract Syntax Trees (ASTs) typically requires large amounts of tedious boilerplate code. For many operations most of the code simply walks the structure, and only a small portion of the code imple...
详细信息
Traversing complex Abstract Syntax Trees (ASTs) typically requires large amounts of tedious boilerplate code. For many operations most of the code simply walks the structure, and only a small portion of the code implements the functionality that motivated the traversal in the first place. This paper presents a type-safe Java framework called Shy that removes much of this boilerplate code. In Shy object Algebras are used to describe complex and extensible AST structures. Using Java annotations Shy generates generic boilerplate code for various types of traversals. For a concrete traversal, users of Shy can then inherit from the generated code and override only the interesting cases. Consequently, the amount of code that users need to write is significantly smaller. Moreover, traversals using the Shy framework are also much more structure shy, becoming more adaptive to future changes or extensions to the AST structure. To prove the effectiveness of the approach, we applied Shy in the implementation of a domain-specific questionnaire language. Our results show that for a large number of traversals there was a significant reduction in the amount of user-defined code.
Many JavaScript programs are written in an event-driven style. In particular, in server-side Node. js applications, operations involving sockets, streams, and files are typically performed in an asynchronous manner, w...
详细信息
Many JavaScript programs are written in an event-driven style. In particular, in server-side Node. js applications, operations involving sockets, streams, and files are typically performed in an asynchronous manner, where the execution of listeners is triggered by events. Several types of programming errors are specific to such event-based programs (e.g., unhandled events, and listeners that are registered too late). We present the event-based call graph, a program representation that can be used to detect bugs related to event handling. We have designed and implemented three analyses for constructing event-based call graphs. Our results show that these analyses are capable of detecting problems reported on StackOverflow. Moreover, we show that the number of false positives reported by the analysis on a suite of small Node. js applications is manageable.
Many internal software metrics and external quality attributes of Java programs correlate strongly with program size. This knowledge has been used pervasively in quantitative studies of software through practices such...
详细信息
Many internal software metrics and external quality attributes of Java programs correlate strongly with program size. This knowledge has been used pervasively in quantitative studies of software through practices such as normalization on size metrics. This paper reports size-related super- and sublinear effects that have not been known before. Findings obtained on a very large collection of Java programs - 30,911 projects hosted at Google Code as of Summer 2011 - unveils how certain characteristics of programs vary disproportionately with program size, sometimes even non-monotonically. Many of the specific parameters of nonlinear relations are reported. This result gives further in-sights for the differences of "programming in the small" vs. "programming in the large." The reported findings carry important consequences for OO software metrics, and software research in general: metrics that have been known to correlate with size can now be properly normalized so that all the information that is left in them is size-independent.
Dynamic languages, such as PHP and JavaScript, are widespread and heavily used. They provide dynamic features such as dynamic type system, virtual and dynamic method calls, dynamic includes, and built-in dynamic data ...
详细信息
The proceedings contain 72 papers. The topics discussed include: towards the integration of model-driven engineering, software product line engineering, and software configuration management;integration of heterogeneo...
ISBN:
(纸本)9789897580833
The proceedings contain 72 papers. The topics discussed include: towards the integration of model-driven engineering, software product line engineering, and software configuration management;integration of heterogeneous modeling languages via extensible and composable language components;specification of adaptable model migrations;architectural view driven model transformations for supporting the lifecycle of parallel applications;a toolset for Simulink - improving software engineering practices in development with Simulink;model query translator - a model-level query approach for large-scale models;a comparison of mechanisms for integrating handwritten and generated code for object-orientedprogramminglanguages;a formalization of analysis-based model migration;and towards non-intrusive composition of executable models.
暂无评论