Introduction
1.1 What is AMPC?
AMPC is an Integrated Development Environment (IDE) for the C programming
language, which generates Java byte-code for rapid development of
applications. The resulting application software will be able to run on any JVM
enabled device.
AMPC is based upon American National Standards Institute C (ANSI C),
X3.159-1989. This allows users of AMPC to develop software using the
standard C programming language and run the executables on JVM enabled
devices requiring no knowledge of the Java language.
Examples of JVM enabled devices are PDAs, cell-phones, game consoles and
desktop systems.
The Java class file generated by AMPC is in full conformance with Sun's Java
Virtual Machine Specification Second Edition (Java 2 Platform)
AMPC follows the ANSI C standard, and supports the run-time library for C
applications.
AMPC is available for the following platforms:
- Windows on x86 PCs
- Linux OS on x86 PCs
- Mac OS X 10.4 on Macintosh Power PC G4 and above.
1.2 System Requirements
Before installing AMPC, please make sure that your computer meets the
following minimum requirements:
1.2.1 Linux OS Platform
- Intel x86 based processor or compatible.
- 64 megabytes of RAM minimum. It is possible to run the application
with less RAM but this is not advisable. It is recommended to have
256MB of RAM.
- CD-ROM drive (for installation from CDs).
- At least 50MB of hard disk space for installation.
- Java Development Kit 1.5 (JDK 5) or above.
1.2.2 Mac OS X Platform
- PowerPC based processor. Recommended PowerPC G4 and above.
- At least 128MB of RAM. Recommended 256MB.
- CD-ROM Drive.
- At least 150MB of disk space.
- Mac OS X 10.4 Operating System or above.
- Java Development Kit 1.5 or above.
- If you want to use AMPCGUI (build using GTK) you are required to have X11 and Xcode Tools for Mac OS X.
1.2.3 Microsoft Windows Platform
- Intel x86 based processor or compatible.
- 128 megabytes of RAM minimum. It is possible to run the application with
less RAM but this is not advisable. It is recommended to have 256MB of
RAM.
- CD-ROM drive (for installation from CDs).
- At least 150MB of hard disk space for installation.
- The minimum version of JDK needed for AMPC is JDK 1.4.2 and JDK 5 (or above)
is recommended.
1.3 Installation
1.3.1 Linux OS x86 Platform
- ampc-linux-1.x.y.tar.gz file can be downloaded at www.axiomsol.com.
- Once downloaded, the compressed file will have to be unpacked using the
following commands; tar or extract ampc-linux-1.x.y.tar.gz
% tar -xvzf ampc-linux-1.x.y.tar.gz
- After extracting all the compressed files, you can start the installation
process. To install, go to directory ampc-linux-1.x.y
% cd ampc-linux-1.x.y
- Then execute the installation program by issuing the command;
% ./install.sh
- The install script will install the relevant files onto your user's home
directory and set the correct permissions on the files so users can
access and run AMPC.
- During the installation process, users have to fill in some information
that is required by the system.
- Once the disclaimer as below is displayed, users have to respond to
the question. If you the installation will proceed to the next step.
DISCLAIMER OF WARRANTY
======================
THIS SOFTWARE IS PROVIDED BY AXIOMATIC SOLUTIONS SDN BHD
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE COMPANY BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
LIMITATION OF LIABILITY
=====================
Licensee acknowledges that the Licensed Software may have defects or
deficiencies which cannot or will not be corrected by Axiomatic.
Licensee will hold Axiomatic harmless from any claims based on Licensee's
use of the Licensed Software for any purposes, and from any claims that
later versions or releases of any Licensed Software furnished to Licensee
are incompatible with the Licensed Software provided to Licensee under this
Agreement.
Licensee shall have the sole responsibility to protect adequately and
backup Licensee's data and/or equipment used in connection with the
Licensed Software. Licensee shall not claim against Axiomatic for lost
data, re-run time, inaccurate output, work delays or lost profits resulting
from Licensee' use of the Licensed Software.
To the extent not prohibited by law, in no event will Axiomatic be liable
for any indirect, punitive, special, incidental or consequential damage in
connection with or arising out of this Agreement (including loss of
business, revenue, profits, use, data or other economic advantage), however
it arises, whether for breach or in tort, even if the other party has
been previously advised of the possibility of such damage.
Do you agree? [Yes/No] yes
- After you agree with the disclaimer, then you have to answer all the questions below:
Name: <your name>
E-mail: <your_email@mail_domain.com>
Serial No: <our-serial-number>
License: <our-license-code-number>
Information Details:
===================
Product Name: Axiomatic Multi-Platform C
Platform: <purchased-OS-platform>
Version: <purchased-version-number>
License Type: <purchased-license-type>
Licensed To: <your name>
E-mail: <your_email@mail_domain.com>
Serial Number: <our-serial-number>
License Key: <our-license-code-number>
-
After you have entered all the information, you will get the above information
from the system. You have to check the information. If the information is
correct, you have to answer yes, if not you have to quit from the installation
process.
Is the above information correct and complete? [Yes/No/Quit] yes
- Upon successful installation, you will get the following message:
Congratulations!
Thank you for choosing AMPC.
- If you are using KDE, you can access AMPC by navigating through
START APPLICATION > DEVELOPMENT > MORE PROGRAMS > AXIOMATIC MULTI-PLATFORM C
- For first time installation, the shell may not be automatically loaded unless you
re-initialize AMPC's profile script. To initialize the environment, do the
following steps;
For bash shell:
% source $HOME/ampc/bin/ampc.sh
For csh shell:
% source $HOME/ampc/bin/ampc.csh
- To uninstall AMPC, execute the following command;
% ./uninstall.sh
Note: All files and packages have been pre-compiled using
glibc version 2.3.2 on Intel x86 machine.
1.3.2 Mac OS X Platform
- Download ampc-macosx-1.x.y.pkg.zip file from www.axiomsol.com
- To get the ampc-macosx-1.x.y.pkg file, you have to unpack the file ampcmacosx-1.x.y.pkg.zip.
- To install, use the Finder program and double click on the ampc-macosx-
1.x.y.pkg installer package.
- Then, follow the instructions given.
- On the License page, read the license agreement.
- Once you agree with the license agreement, choose drive/partition destination where you want to install AMPC.
- You need to enter administrator's name and password before you can proceed with the installation.
- The AMPC will be installed in directory /Applications/AMPC on the chosen drive/partition.
- To execute the AMPC, double click on ampcgui (ampcgui.app).
- The ampcgui will install relevant files into your user home directory and set the correct permissions on the files.
- To install license key information, you have to:
- Open the /Applications/AMPC directory (where ampcgui located).
- Double click on the install-license file.
- During installation process, you need to fill in some information. You have to
read term prescribed in License.rtf file and answer yes if you agree on it.
Do you agree with the term described in License.rtf or LICENSE file ? [Yes/No] yes
- Once you answered "yes", you then have to fill in some information that had been emailed to you earlier.
Name: <your name>
E-mail: <your_email@mail_domain.com>
Serial No: <our-serial-number>
License: <our-license-code-number>
- Then the system will prompt you with the details of the information.
Information Details:
====================
Product Name: Axiomatic Multi-Platform C
Platform: <purchased-OS-platform>
Version: <purchased-version-number>
License Type: <purchased-license-type>
Licensed To: <your name>
E-mail: <your_email@mail_domain.com>
Serial Number: <our-serial-number>
License Key: <our-license-code-number>
Is the above information is correct and complete? [Yes/No/Quit] yes
- Upon completion of the installation, you will receive the message as below:
Congratulations!
Thank you for choosing AMPC.
- To uninstall AMPC:
- Open a terminal window and change your current directory to /Applications/AMPC directory.
- Execute the uninstall.sh script file. This script will completely remove AMPC from your computer system.
% ./uninstall.sh
- You have to login as an administrator's user before you can completely remove
AMPC directory from /Applications directory.
Note: All files and packages have been pre-compiled on MacOS X 10.4
(Tiger), Macintosh Power PC G4 machine.
1.3.3 Microsoft Windows Platform
- AMPC installer can be downloaded from www.axiomsol.com. Before you proceed with the installation, you need to login as an administrator user in Windows XP.
- Click the AMPC installer and it will install all the packages in the specified
directory C:\Program Files\AMPC directory.
- To install license key information, you have to go to Start > All Programs > Axiomatic Multi-Platform C > Install License
- This will execute the install license program and you have to provide few
information. You have to read the terms prescribed in License.rtf file and answer
yes if you agree to it.
Do you agree with the term described in License.rtf or LICENSE file ? [Yes/No] yes
- Once you answered "yes", you then have to fill in some information that had
been emailed to you earlier.
Name: <your name>
E-mail: <your_email@mail_domain.com>
Serial No: <our-serial-number>
License: <our-license-code-number>
- Then the system will prompt you with the details of the information.
Information Details:
====================
Product Name: Axiomatic Multi-Platform C
Platform: <purchased-OS-platform>
Version: <purchased-version-number>
License Type: <purchased-license-type>
Licensed To: <your name>
E-mail: <your_email@mail_domain.com>
Serial Number: <our-serial-number>
License Key: <our-license-code-number>
Is the above information is correct and complete? [Yes/No/Quit] yes
- Upon completion of the installation, you will receive the message as below:
Congratulations!
Thank you for choosing AMPC.
- When the installation is completed, you need to restart first your computer before
you can start using AMPC.
- To uninstall AMPC, open the Start > Control Panel > Add/Remove Program and choose AMPC to remove.
1.4 Restrictions and Notes
- All scalar data types are 1 word long. They are "char", "short", "int", "long", "long long", "float", "double", ...
- JNI (JVM Native Interface) for AMPC is also supported. An example is given in the directory "ampc_jni".
- Goto statements across functions or blocks not allowed.
- fork() followed by exec() functionality is implemented differently. Here's an example of how to use it:
#include <stdio.h>
main()
{ char *cmd;
cmd = "ls -l";
INT_java("invokestatic _J_RunIt/fork_and_exec", "S", "V", STR1(cmd));
}
- Memory size models for stack and heap are FEMTO, PICO, NANO, MICRO, TINY, SMALL, MEDIUM, LARGE, and HUGE. They are 0.25 meg, 0.5 meg, 1 meg, 2 megs, 4 megs, 8 megs, 16 megs, 20 megs, and 32 megs respectively. TINY model (4 megs) is the default.
- The JVM limits each function/method to occupy at most 64KB of binary code space. Any function/method that is bigger than that will be caught by the JVM and execution is halted.
- It is encouraged that the source file names to have only characters that are valid C identifier characters. This is to avoid the possibility of the Jasmin assembler not being able to parse file names used in function calls (method invocations) due to the existence of non-identifier character(s).
- Please set the "classpath" when running the "RUN" command (that invokes the JVM interpreter) using the "-cp" to include the location of the application being executed followed by the current location, followed by the location LOCAL_CLASSFILES, and followed by any other location you wish to include in the classpath. Alternatively, you may set the environment variable CLASSPATH for this purpose.
Example: %RUN -cp myapps/hello:/usr/local/lib/acc2jvm/LOCAL_CLASSFILES:. helloworld
1.5 Trademark Information
© 2007 Axiomatic Solutions Sdn. Bhd,
Valid license from Axiomatic Solutions Sdn. Bhd is required for possession, use,
or copying. Axiomatic Solutions Sdn. Bhd shall be not be liable for technical or
editorial errors or omissions contained herein. The information in this document
is provided "as is" without warranty of any kind and is subject to change without
notice. All other product names mentioned herein may be trademarks of their
respective companies.
1.6 Disclaimer of Warranty
This software is provided by Axiomatic Solutions Sdn Bhd "AS IS" and any
expressed or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed.
In no event shall the company be liable for any direct, indirect, incidental,
special, exemplary or consequential damages (including but not limited to,
procurement of substitute goods or services, loss of use, data, or profits; or
business interruption) however caused and on any theory of liability, whether in
contract, strict liability, or tort (including negligence or otherwise) arising in
anyway out of the use of this software, even if advised of the possibility of such
damage.
Licensee acknowledges that Licensed Software may contain errors and is not
designed or intended for use in the design, construction, operation or
maintenance of any nuclear facility ("High Risk Activities"). Axiomatic disclaims
any expressed or implied warranties of fitness for such uses. Licensee
represents and warrants to Axiomatic that it will not use, distribute or license the
Licensed Software for High Risk Activities.
1.7 Limitation of Liability
Licensee acknowledges that the Licensed Software may have defects or
deficiencies which cannot or will not be corrected by Axiomatic. Licensee will
hold Axiomatic harmless from any claims based on Licensee's use of the
Licensed Software for any purpose and from any claims that later versions or
releases of any Licensed Software furnished to Licensee are incompatible with
the Licensed Software provide to Licensee under this Agreement.
Licensee shall have the sole responsibility to protect adequately and backup
Licensee's data and/or equipment used in connection with the Licensed
Software. Licensee shall not claim against Axiomatic for lost data, re-run time,
inaccurate output, work delays or lost profits resulting from Licensee's use of the
Licensed Software.
To the extent not prohibited by law, in no event will Axiomatic be liable for any
indirect, punitive, special, incidental or consequential damage in connection with
or arising out of this Agreement (including loss of business, revenues, profits,
use, data or other economic advantage), however it arises, whether for breach of
in tort, even if the other party