首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
JNI技术在跨平台电力自动化系统中的应用   总被引:1,自引:0,他引:1  
赵楠  何光宇 《计算机工程与应用》2005,41(17):203-205,232
Java的平台无关等优点使它更适合电力系统的软件开发。但目前电力系统的大部分软件都是用C 语言中开发的,如何能将原有程序应用到Java中成为一个值得关注的问题。论文以配电分析软件为例,探讨使用Java本地接口(JNI)改造原有C 程序的可行性和优点,并对Java本地接口技术在电力系统自动化软件中的应用前景进行了展望。  相似文献   

2.
作为众多成功开源软件产品之一的Python程序设计语言,其自身最具鲜明性的是“动态语言”特性与独特的“面向对象模型”系统。而AOP(面向方面编程)技术,作为OOP(面向对象编程)中解决代码耦合度问题的新技术思路,经历了若干年的研究探索后,已经在C 以及Java语言环境中被实现为实用工具。本文将尝试基于Python语言环境,利用其“动态语言”特性与的“面向对象模型”,设计实现一个轻量工具。  相似文献   

3.
Developing Real Applications With Agent Technologies   总被引:1,自引:0,他引:1  
In this paper, we present an agent library to develop multi-agent applications. Such an agent library has been realised taking into account FIPA specifications. FIPA specifications give the minimum amount of technology deemed necessary for the management of agents in an open agent system, including agent roles, an agent communication language, an agent management content language, and a standard way to interact with non-agentised software.Therefore, the library offers the prototypes of the agents necessary for the management of a FIPA agent open system and an agent prototype that the user can specialise to build the other agents necessary for her/his application. The library has been implemented both in C++ and Java. The two implementations support a logical distribution, i.e., the agents correspond to different threads, and a physical distribution, i. e., agents of the same applications run on different machines. The Java library has been used to develop a multi-agent system, that facilitates users to use a video on demand service, and a first prototype of the system is under experimentation. The C++ library is used for the development of a multi-agent system that should integrate the different software modules performing sensory data interpretation, planning, faults diagnosis, . . . of a robot working in a space station.  相似文献   

4.
Many Object-Oriented Databases (OODBs) use programming languages that predate Java, such as C++, CLOS and Smalltalk. Thus, there is a growing need for interoperating these OODBs with new applications that require Java. Unfortunately, there are few mechanisms that allow software developers to easily integrate Java applications with non-Java OODBs. Although various interoperability mechanisms have been developed over the years, these approaches have some significant drawbacks in practice. They are often difficult to use, provide little, if any, automated support, and produce software that is difficult to engineer and maintain. In this paper, we describe an interoperability approach that allows application developers to seamlessly and transparently access non-Java OODBs from Java applications. We first present JOQL, a Java-based object query language that we are developing. JOQL queries are embedded in Java applications and are used to perform queries over C++-based OODBs. We also describe an accompanying toolset that processes Java programs containing JOQL queries. The toolset produces all the necessary code allowing Java applications to access and manipulate a C++-based OODB. As a result, application developers are free to work in Java without having to concern themselves with the details of interoperating with C++. Finally, we provide some preliminary experimental data that demonstrates our approach incurs a reasonable performance overhead.  相似文献   

5.
AspectC#——在C#中应用AOP   总被引:2,自引:0,他引:2  
当前,AspectJ是用得最普遍的AOP工具,它是基于Java平台的。着重讨论了一种基于.NET平台的AOP技术,AspectC#。用户可以通过AspectC#在C#中应用AOP。目前,AspectC#只支持C#语言,但是.NET平台的多语言性使得跨语言的AOP应用成为可能。  相似文献   

6.
Hamilton  M.A. 《Computer》1996,29(8):31-39
Java is an object-oriented programming language with a syntax similar to C and C++, only simpler. Because Java is an interpreted language, the typical C or C++ compile-link-load-test-debug cycle is reduced. Java development environments actually let the entire software-development life cycle take place within a Web browser. The author discusses some basic and advanced features of Java, including garbage collection, multithreading and application programming interfaces  相似文献   

7.
Android Java应用程序(APP)运行时需依赖Dalvik虚拟机环境,从而影响APP的性能表现.C/C++程序具有极好的硬件适应能力,但不能直接开发Android APP.针对该问题,利用Dalvik虚拟机支持JNI (Java Native Inter-face)调用的特点,设计了基于Qt的Android APP C/C++开发方法框架体系,给出了框架的详细工作机制和解决方案,系统总结了利用C/C++开发Android APP的主要过程和步骤.最后,以Android版机械CAD导教APP的开发工作为例,验证了方法的有效性和可行性,为直接利用C/C++开发Android APP提供了一种新途径.  相似文献   

8.
Object-oriented programming is the most used programming paradigm when dealing with large-scale, modular software. In this field, the two leading languages are Java and C++. The former has superior qualities in terms of safety and ease of programming, whereas the latter is often considered an “old” language, too complex and potentially unsafe.In this paper, we describe a new type system designed to analyze the security problems derived from pointer manipulation in C++. This type system tries to trap the most common errors through static analysis, i.e., at compile-time, and only when static analysis fails it generates and embeds code fragments that apply runtime checks on specific instructions. The aim of this new type system is to give C++ the same safety of Java in the most important memory-related operations, without adding much runtime overhead. An experimental implementation of the type system is also presented, embedded in a C++ analysis tool called GPCC.  相似文献   

9.
Aspectual Feature Modules   总被引:1,自引:0,他引:1  
Two programming paradigms are gaining attention in the overlapping fields of software product lines (SPLs) and incremental software development (ISD). Feature-oriented programming (FOP) aims at large-scale compositional programming and feature modularity in SPLs using ISD. Aspect-oriented programming (AOP) focuses on the modularization of crosscutting concerns in complex software. Although feature modules, the main abstraction mechanisms of FOP, perform well in implementing large-scale software building blocks, they are incapable of modularizing certain kinds of crosscutting concerns. This weakness is exactly the strength of aspects, the main abstraction mechanisms of AOP. We contribute a systematic evaluation and comparison of FOP and AOP. It reveals that aspects and feature modules are complementary techniques. Consequently, we propose the symbiosis of FOP and AOP and aspectual feature modules (AFMs), a programming technique that integrates feature modules and aspects. We provide a set of tools that support implementing AFMs on top of Java and C++. We apply AFMs to a nontrivial case study demonstrating their practical applicability and to justify our design choices.  相似文献   

10.
国产异构众核处理器是我国打破国际技术壁垒,在高性能计算领域取得突破的关键环节.围绕国产超算的软件生态环境建设,采用智能源码转换的方法盘活海量多核架构的遗产代码是加速软件研发效率,推动领域发展的重要途径.针对国产运算核心不支持C++编译的现状,基于开源的ANTLR语言翻译工具,提出了一种面向异构众核处理器的智能化C++语...  相似文献   

11.
12.
Dale Parson  Zhenyu Zhu 《Software》2000,30(15):1641-1660
The JavaTM Native Interface (JNI) provides a set of mechanisms for implementing Java methods in C or C++. JNI is useful for reusing C and C++ code repositories within Java frameworks. JNI is also useful for real‐time systems, where compiled C/C++ code executes performance‐critical tasks, while Java code executes system control and feature tasks. Available JNI literature concentrates on creating Java proxy classes that allow Java clients to interact with C++ classes. Current JNI literature does not discuss Java proxies for entire C++ inheritance hierarchies; that is the topic of this paper. Our experience in reusing C++ class hierarchies within a Java framework has uncovered a set of useful techniques for constructing Java proxy class hierarchies that mirror their C++ counterparts. This report gives both high level design guidelines and specific programming idioms for constructing Java class hierarchies that serve as proxies for C++ counterparts. We begin by discussing opportunities for reuse within a proxy class hierarchy, as well as problems caused by differences between the Java and C++ approaches to inheritance. The two most significant differences are due to C++ support for invocation of a member function based on the static type of its class, and C++ support for multiple implementation inheritance. Two example C++ class hierarchies provide the basis for a set of sections that present the design guidelines and that codify the programming idioms. This work could serve as the basis for an automatic generator of Java proxy class hierarchies. Copyright © 2000 John Wiley & Sons, Ltd.  相似文献   

13.
Geoffrey Phipps 《Software》1999,29(4):345-358
An experiment was conducted to compare programmer productivity and defect rates for Java and C++. A modified version of the Personal Software Process (PSP) was used to gather defect rate, bug rate, and productivity data on C++ and Java during two real world development projects. A bug is defined to be a problem detected during testing or deployment. A defect is either a bug, or an error detected during compile time. A typical C++ program had two to three times as many bugs per line of code as a typical Java program. C++ also generated between 15 per cent and 50 per cent more defects per line, and perhaps took six times as long to debug. Java was between 30 per cent and 200 per cent more productive, in terms of lines of code per minute. When defects were measured against development time, Java and C++ showed no difference, but C++ had two to three times as many bugs per hour. Statistics were generated using Student's t‐test at a 95 per cent confidence level. Some discussion of why the differences occurred is included, but the reasons offered have not been tested experimentally. The study is limited to one programmer over two projects, so it is not a definitive experimental result. The programmer was experienced in C++, but only learning Java, so the results would probably favour Java more strongly for equally‐experienced programmers. The experiment shows that it is possible to experimentally measure the fitness of a programming language. Copyright © 1999 John Wiley & Sons, Ltd.  相似文献   

14.
目前面向方面编程(AOP)的主流工具是基于Java平台的AspectJ。该文论述了基于.NET平台的新AOP技术——Eos语言,该语言扩展了C#语言,引入一套完整的AOP语法,并提供Eos专用编译器,使其性能高于其他AOP实现技术。支持多语言的.NET平台的应用使跨语言应用AOP成为可能。  相似文献   

15.
In recent years, the popularity of the Internet has increased and Java has emerged as a powerful animation tool for creating web pages. However, users have still not exploited the full power of Java. Java is an object-oriented programming language with a rich set of application programming interfaces (API). It has the infrastructure for building applications in diverse domains with ease. Java's sophisticated networking APIs facilitate building network centric enterprise applications. Java's virtual machine enables development of architecture neutral applications which can be ported without any modifications. This has revolutionized the way software is written and distributed. This paper highlights the key features of Java language, illustrates the use of networking libraries and enlists features that facilitate enterprise software development.  相似文献   

16.
The KeY tool   总被引:5,自引:2,他引:3  
KeY is a tool that provides facilities for formal specification and verification of programs within a commercial platform for UML based software development. Using the KeY tool, formal methods and object-oriented development techniques are applied in an integrated manner. Formal specification is performed using the Object Constraint Language (OCL), which is part of the UML standard. KeY provides support for the authoring and formal analysis of OCL constraints. The target language of KeY based development is Java Card DL, a proper subset of Java for smart card applications and embedded systems. KeY uses a dynamic logic for Java Card DL to express proof obligations, and provides a state-of-the-art theorem prover for interactive and automated verification. Apart from its integration into UML based software development, a characteristic feature of KeY is that formal specification and verification can be introduced incrementally.  相似文献   

17.
串口在数据通信中应用广泛,但Android SDK指定使用Java作为第三方应用开发语言,这给C语言实现串口应用带来了困难。虽然Google Android已经发布了NDK(Native Development Kit,原生态开发包),支持开发者用C/C++语言开发Android程序,但目前官方提供的技术指导比较简略。通过开发一个Android下串口通信应用实例,详细介绍了Android NDK的开发流程,帮助开发人员快速的完成平台搭建。  相似文献   

18.
Implementing a concurrent programming language such as Java by means of a translator to an existing language is attractive as it provides portability over all platforms supported by the host language and reduces development time—as many low‐level tasks can be delegated to the host compiler. The C and C++ programming languages are popular choices for many language implementations due to the availability of efficient compilers on a wide range of platforms. For garbage‐collected languages, however, they are not a perfect match as no support is provided for accurately discovering pointers to heap‐allocated data on thread stacks. We evaluate several previously published techniques and propose a new mechanism, lazy pointer stacks, for performing accurate garbage collection in such uncooperative environments. We implemented the new technique in the Ovm Java virtual machine with our own Java‐to‐C/C++ compiler using GCC as a back‐end compiler. Our extensive experimental results confirm that lazy pointer stacks outperform existing approaches: we provide a speedup of 4.5% over Henderson's accurate collector with a 17% increase in code size. Accurate collection is essential in the context of real‐time systems, we thus validate our approach with the implementation of a real‐time concurrent garbage collection algorithm. Copyright © 2009 John Wiley & Sons, Ltd.  相似文献   

19.
20.
面向方面软件开发研究   总被引:4,自引:0,他引:4  
系统的某些关注点横切整个系统,无法很好地封装在单个模块里,造成代码混乱和弥散,用面向方面编程AOP可以解决这些问题。首先介绍了现代软件开发方法及其产生的问题;其次,阐述了AOP的基本概念,并结合AspectC++演示了如何进行面向方面的编程;再次,描述了如何对UML扩展以支持对方面建模;然后介绍了面向方面软件开发在实时系统中的应用;最后给出了结论和未来的主要工作。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号