Main Page

From Java4c

(Difference between revisions)
m (Protected "Main Page" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)))
(Source Version Management)
 
(10 intermediate revisions not shown)
Line 1: Line 1:
 +
This site holds information about programming for embedded software in an ObjectOriented style. Ideas and concepts of the Java programming language are integrated in this thinks. Some articles describe software-engineering-topics.
 +
 +
==Base links==
 +
* [[Java4C]] - why Java-thinking and Java-using for the C-programming
 +
* [[CRuntimeJavalike]] - A base library for embedded C-software
 +
* [[Java2C]] - A translator from Java-sources to C-sources
 +
* [[Component]] - Building the application with components and moduls
 +
* [[Bazaar]] - A Source Version System
 +
==Java4C==
==Java4C==
-
Goals:
+
* [[Java4C]] - why Java-thinking and Java-using for the C-programming
-
* Using Java-programming language for embedded software in cooperation with C (and C++-) software.
+
* [[SourceLinesAndDocu]] - Graphic programming (UML or other) or '''lines of code''' - what is with the documentation
-
* Using a ObjectOriented style of programming also in C!
+
* [[GraphicAndCodeGen]] - Graphical programming and code generation
-
* Using Java-like basic routines inclusive operation-system-calls.
+
-
* Using Java for program and test, and translate the sources to C.
+
-
===Why Java?===
+
==CRuntimeJavalike==
-
Java is not only a language for internet applications. Java is a programming system for common usage. The first approach to develop Java in 1994 was: Creation of a portable language for embedded applications. Java is used in some embedded applications like mobil phones, routers. It is present with a ''JTRES'': ''Java Technology for Realtime Embedded Systems'' provided by companies like Sun/Oracle, Aicas, Aonix/Atego and others.
+
* [[CRuntimeJavalike]] - A base library for embedded C-software
 +
===OSAL===
 +
* [[OSAL]] - The interface to the operation system with its application layer
 +
* basics: [[os_types_def]] // [[os_AtomicAccess]] // [[os_error]]
 +
* somethings: [[os_mem]] // [[os_time]] // [[os_file]] // [[os_endian]]
 +
* MultiThreading: [[os_thread]] -- [[os_waitnotify]] -- [[os_sync]] -- [[os_socket]]
 +
* [[os_Shared_Memory]] -- [[Dual port RAM]] -- [[InterProcessCommunication]]
 +
* [[os_driver]] operation access at driver level
-
The Java-syntax for expressions is similar like C. Java is strong declarative, like C. The differences to C are:
+
==Java2C==
-
* ObjectOrientation
+
* [[http://www.vishia.org/Java2C www.vishia.org/Java2C]]
-
* It is a Language of a new generation. The C-style of programming was born in 1970 with orientation to structured programming. Java was born in 1994.
+
* [[http://sourceforge.net/projects/java2c Java2C on sourceforge]]
-
* Java supports a better test of algorithms. If there are any errors for example in the addressing (indexing) of arrays, it is detected safely in runtime. The algorithms need not be tested step by step to prevent such errors. A paradigma ''compile 'n run'' can be used. The time for testing can be reduced drasticly without reducing the quality of software respectively more complex algorithms can be tested in the same time like simple algorithm in C or C++.
+
-
Java uses dynamic data. The approach of dynamic data helps to handle with variegated data in many threads in large applications. For example the String-processing needs dynamic memory. But it is also possible to handle with static data (allocated on startup). For example, String processing using a StringBuilder-instance and the CharSequence-interface can execute without allocation of memory. Static data are proper to use for embedded systems often.
+
==Components, Dependencies==
 +
* [[Component]] - Building the application with components and modules - common description
-
===Why not C++?===
+
===Components of vishia-Software===
-
C++ is ObjectOriented and a modern programming language too. It is downward-compatible with C.
+
* [[Components of vishia-Java]] - presentation of components from all Java - sources of org/vishia
 +
* [[Components of CRuntimeJavalike]] - presentation of components from C-sources
-
But the usual programming style in C++ divergates from the style in C. There are handled with dynamic memory in some basic classes, complex constructs using the template concept are usual. An ordinary C++-program can't be used for embedded programming often.
+
===Dependencies===
 +
* [[Dependency]]
-
The disadvantages of the C-language: Unsafe pointer arithmetic, arbitrary casts, unchecked array addressing are all present in C++ too. C++ doesn't help for testing such errors like C.
+
====Dependency-Topics of C====
 +
* [[forward declaration of struct]]
 +
* [[forward declaration of functions in header]]
-
==The key author of this site==
+
====Dependency-Topics of ObjectOrientation (Java, C)====
-
has experience in embedded programming since 1977, beginning with Assembler programming with the Z80-processor. I'm working for a company in germany in themes of embedded control. This site presents experiences independently of concretely job definitions.
+
* TODO
 +
 
 +
==Source Version Management==
 +
* [[Source-Version-Management-de]] (german)
 +
* [[Source-Version-Management-en]] (english)
 +
* [[Multi-Bazaar-Components]]: Applications build with independent components with its independent bazaar archives.
 +
* [[Bazaar]] - A Source Version System
 +
* [[Bazaar-Notes]]: discussion (german) about Source-Management and directory structures
 +
 
 +
==Linux==
 +
* [[Linux]] - Some hints for Linux usage
 +
 
 +
==The key author of this site==
-
==The mission of this site==
+
has experience in embedded programming since 1977, beginning with Assembler programming with the Z80-processor. I'm working for a company in germany in themes of embedded control. This site presents experiences independently of concretely job definitions. Hartmut Schorrig, [[http://www.vishia.org www.vishia.org]]
-
Exchange of experiences. You can take place on discussion. You can complement the text of the pages with your experience and knowledge. 
+
==The mission of this site - Your contribution==
-
==Guide through the site==
+
Exchange of experiences. You can take place on discussion. You can complement the text of the pages with your experience and knowledge. You can improve the appearance of the text.
-
TODO
+
It is necessary to register with a user name to this site.
-
*Style of programming in C: ObjectOrientation, OSAL layer, re-using
+
-
*CRuntimeJavalike
+
-
*Java2C-translator
+
-
First page: [[os_types_def]].
+
Future: [[Inspector datagram]]

Current revision as of 20:59, 18 November 2012

This site holds information about programming for embedded software in an ObjectOriented style. Ideas and concepts of the Java programming language are integrated in this thinks. Some articles describe software-engineering-topics.

Contents

Base links

  • Java4C - why Java-thinking and Java-using for the C-programming
  • CRuntimeJavalike - A base library for embedded C-software
  • Java2C - A translator from Java-sources to C-sources
  • Component - Building the application with components and moduls
  • Bazaar - A Source Version System

Java4C

  • Java4C - why Java-thinking and Java-using for the C-programming
  • SourceLinesAndDocu - Graphic programming (UML or other) or lines of code - what is with the documentation
  • GraphicAndCodeGen - Graphical programming and code generation

CRuntimeJavalike

OSAL

Java2C

Components, Dependencies

  • Component - Building the application with components and modules - common description

Components of vishia-Software

Dependencies

Dependency-Topics of C

Dependency-Topics of ObjectOrientation (Java, C)

  • TODO

Source Version Management

Linux

  • Linux - Some hints for Linux usage

The key author of this site

has experience in embedded programming since 1977, beginning with Assembler programming with the Z80-processor. I'm working for a company in germany in themes of embedded control. This site presents experiences independently of concretely job definitions. Hartmut Schorrig, [www.vishia.org]

The mission of this site - Your contribution

Exchange of experiences. You can take place on discussion. You can complement the text of the pages with your experience and knowledge. You can improve the appearance of the text.

It is necessary to register with a user name to this site.

Future: Inspector datagram

Personal tools