Extending C and FORTRAN for Design Automation

Author(s):  
Harry H. Cheng

Abstract The CH programming language, a high-performance C, is designed to be a superset of ANSI C. CH bridges the gap between ANSI C and FORTRAN; it encompasses almost all the programming capabilities of FORTRAN 77 in the current implementation and consists of features of many other programming languages and software packages. Unlike other general-purpose programming languages, CH is designed to be especially suitable for applications in mechanical systems engineering. Because of our research interests, many programming features in CH have been implemented for design automation, although they are useful in other applications as well. In this paper we will describe these new programming features for design automation, as they are currently implemented in CH in comparison with ANSI C and FORTRAN 77.

1995 ◽  
Vol 117 (3) ◽  
pp. 390-395 ◽  
Author(s):  
H. H. Cheng

The CH programming language is designed to be a superset of C. CH bridges the gap between C and FORTRAN; it encompasses all the programming capabilities of FORTRAN 77 and consists of features of many other programming languages and software packages. Unlike other general-purpose programming languages, CH is designed to be especially suitable for applications in mechanical systems engineering. Because of our research interests, many programming features in CH have been implemented for design automation, although they are useful in other applications as well. In this paper we will describe these new programming features for design automation, as they are currently implemented in CH in comparison with C and FORTRAN 77.


Author(s):  
Masaki Iwasawa ◽  
Daisuke Namekata ◽  
Keigo Nitadori ◽  
Kentaro Nomura ◽  
Long Wang ◽  
...  

Abstract We describe algorithms implemented in FDPS (Framework for Developing Particle Simulators) to make efficient use of accelerator hardware such as GPGPUs (general-purpose computing on graphics processing units). We have developed FDPS to make it possible for researchers to develop their own high-performance parallel particle-based simulation programs without spending large amounts of time on parallelization and performance tuning. FDPS provides a high-performance implementation of parallel algorithms for particle-based simulations in a “generic” form, so that researchers can define their own particle data structure and interparticle interaction functions. FDPS compiled with user-supplied data types and interaction functions provides all the necessary functions for parallelization, and researchers can thus write their programs as though they are writing simple non-parallel code. It has previously been possible to use accelerators with FDPS by writing an interaction function that uses the accelerator. However, the efficiency was limited by the latency and bandwidth of communication between the CPU and the accelerator, and also by the mismatch between the available degree of parallelism of the interaction function and that of the hardware parallelism. We have modified the interface of the user-provided interaction functions so that accelerators are more efficiently used. We also implemented new techniques which reduce the amount of work on the CPU side and the amount of communication between CPU and accelerators. We have measured the performance of N-body simulations on a system with an NVIDIA Volta GPGPU using FDPS and the achieved performance is around 27% of the theoretical peak limit. We have constructed a detailed performance model, and found that the current implementation can achieve good performance on systems with much smaller memory and communication bandwidth. Thus, our implementation will be applicable to future generations of accelerator system.


2002 ◽  
Vol 12 (02) ◽  
pp. 193-210 ◽  
Author(s):  
CHRISTOPH A. HERRMANN ◽  
CHRISTIAN LENGAUER

Metaprogramming is a paradigm for enhancing a general-purpose programming language with features catering for a special-purpose application domain, without a need for a reimplementation of the language. In a staged compilation, the special-purpose features are translated and optimised by a domain-specific preprocessor, which hands over to the general-purpose compiler for translation of the domain-independent part of the program. The domain we work in is high-performance parallel computing. We use metaprogramming to enhance the functional language Haskell with features for the efficient, parallel implementation of certain computational patterns, called skeletons.


Background/Objectives: In the field of software development, the diversity of programming languages increases dramatically with the increase in their complexity. This leads both programmers and researchers to develop and investigate automated tools to distinguish these programming languages. Different efforts were conducted to achieve this task using keywords of source codes of these programming languages. Therefore, instead of using keywords classification for recognition, this work is conducted to investigate the ability to detect the pattern of a programming language characteristic by using NeMo(High-performance spiking neural network simulator) of neural network and testing the ability of this toolkit to provide detailed analyzable results. Methods/Statistical analysis: the method of achieving these objectives is by using a back propagation neural network via NeMo based on pattern recognition methodology. Findings: The results show that the NeMo neural network of pattern recognition can identify and recognize the pattern of python programming language with high accuracy. It also shows the ability of the NeMo toolkit to represent the analyzable results through a percentage of certainty. Improvements/Applications: it can be noticed from the results the ability of NeMo simulator to provide beneficial platform for studying and analyzing the complexity of the backpropagation neural network model.


2020 ◽  
Author(s):  
Jason Brown ◽  
François Pessaux

Modeling continuous-time dynamical systems is a complex task. Fortunately some dedicated programming languages exist to ease this work. Zélus is one such language that generates a simulation executable which can be used to study the behavior of the modeled system. However, such simulations cannot handle uncertainties on some parameters of the system. This makes it necessary to run multiple simulations to check that the system fulfills particular requirements (safety for instance) for all the values in the uncertainty ranges. Interval-based guaranteed integration methods provide a solution to this problem. The DynIbex library provides such methods but it requires a manual encoding of the system in a general purpose programming language (C++). This article presents an extension of the Zélus compiler to generate interval-based guaranteed simulations of IVPs using DynIbex. This extension is conservative since it does not break the existing compilation workflow.


Author(s):  
Dazhong Wu ◽  
Janis Terpenny ◽  
Dirk Schaefer

In recent years, industrial nations around the globe have invested heavily in new technologies, software, and services to advance digital design and engineering analysis using the digital thread, data analytics, and high performance computing. Many of these initiatives such as Cloud-Based Design and Engineering analysis (CBDEA) fall under the umbrella of what has become known as Industry 4.0 or Industrial Internet. While an increasing number of companies are developing or already offering commercial cloud-based software packages and services for digital design and engineering analysis, little work has been reported on analyzing and documenting the related state-of-the-art as well as identifying potentially critical research gaps to be addressed in advancing this rapidly growing field. The objective of this paper is to present a state-of-the-art review of digital design and engineering analysis software and services that are currently available on the cloud. The main focus of this paper is on assessing the extent to which design and engineering analysis can already be performed based on the software and services accessed through the cloud. In addition, the key capabilities and benefits of these software packages and services are discussed. Based on the assessment of the core features of commercial CBDEA software and service packages, results suggest that almost all phases of a typical design and engineering analysis process can indeed already be conducted through cloud-based software tools and services.


Author(s):  
Richard Schumi ◽  
Jun Sun

AbstractCompilers are error-prone due to their high complexity. They are relevant for not only general purpose programming languages, but also for many domain specific languages. Bugs in compilers can potentially render all programs at risk. It is thus crucial that compilers are systematically tested, if not verified. Recently, a number of efforts have been made to formalise and standardise programming language semantics, which can be applied to verify the correctness of the respective compilers. In this work, we present a novel specification-based testing method named SpecTest to better utilise these semantics for testing. By applying an executable semantics as test oracle, SpecTest can discover deep semantic errors in compilers. Compared to existing approaches, SpecTest is built upon a novel test coverage criterion called semantic coverage which brings together mutation testing and fuzzing to specifically target less tested language features. We apply SpecTest to systematically test two compilers, i.e., the Java compiler and the Solidity compiler. SpecTest improves the semantic coverage of both compilers considerably and reveals multiple previously unknown bugs.


Author(s):  
Anton Nedyak ◽  
Oleg Rudzeyt ◽  
Artem Zainetdinov ◽  
Petr Ragulin

This article discusses the existing popular tools for mobile cross-platform application development. It is contrasted with the so – called native application development-when applications are created using the tools provided by the development companies of the respective platforms. Google provides a tool like Android Studio for its Android mobile operating system. The main programming languages used to create applications for this platform are Java and Kotlin. Apple, in turn, offers developers such an integrated development environment as XCode, in which development is carried out using the Swift programming language. The authors reviewed some of the most popular tools for cross-platform development, such as React Native, Xamarin and Flutter. React Native is a product developed by the company Facebook. It inherits the main technological aspects from another framework from Facebook-React. Programming here is conducted in the JavaScript language. React Native is suitable for web developers who have worked with React before and now want to try their hand at developing mobile applications. Xamarin is a framework supported by Microsoft. It provides tools for creating cross-platform applications for the iOS and Android mobile operating systems. This framework is bundled with Microsoft Visual Studio as a downloadable component. What is typical for a Microsoft product, here the C# programming language is used for development. This is a significant advantage of the Xamarin framework: during the creation of a mobile application, developers can use all the important and convenient features of this programming language. Flutter is a tool developed by Google to create apps for Android and iOS using a single code base. Unlike other popular solutions, Flutter is not a framework: it is a set of software development tools that contains everything you need to create cross-platform applications. It includes a visualization engine, ready-made widgets, and tools for working with the command line. The main programming language here is Dart. In the course of studying these tools, the authors made the following conclusions: tools for cross-platform development are an excellent solution if you need to create an application that does not require high performance: displaying information received from the server, simple local information processors, such as applications for social networks, online stores, organizer applications. These tools are not suitable for creating applications that require computing resources.


2020 ◽  
Vol 2020 ◽  
pp. 1-15
Author(s):  
Zheng Yang ◽  
Hang Lei

The security of blockchain smart contracts is one of the most emerging issues of the greatest interest for researchers. This article presents an intermediate specification language for the formal verification of Ethereum-based smart contract in Coq, denoted as Lolisa. The formal syntax and semantics of Lolisa contain a large subset of the Solidity programming language developed for the Ethereum blockchain platform. To enhance type safety, the formal syntax of Lolisa adopts a stronger static type system than Solidity. In addition, Lolisa includes a large subset of Solidity syntax components as well as general-purpose programming language features. Therefore, Solidity programs can be directly translated into Lolisa with line-by-line correspondence. Lolisa is inherently generalizable and can be extended to express other programming languages. Finally, the syntax and semantics of Lolisa have been encapsulated as an interpreter in mathematical tool Coq. Hence, smart contracts written in Lolisa can be symbolically executed and verified in Coq.


2015 ◽  
Vol 1 (2) ◽  
Author(s):  
Varsha Dubey

C is a powerful system, programming language, and C++ is an excellent general purpose programming language with modern bells and whistles. In this report I intend to first explain the history of C & C++. Secondly, I will discuss in brief the difference between C&C++ in many homes.


Sign in / Sign up

Export Citation Format

Share Document