2013年6月2日 星期日

資源清單 - Java, C/C++ web developer resources

來源: http://www.ivmaisoft.com/jcgo/links.htm#java-benchmark

JCGO: Java, C/C++ web developer resources

A comprehensive collection of links useful for Java and C/C++ developers. Focused on the Java VM implementations and Java compilers. Maintained by Ivan Maidanski, the developer of JCGO...
The following web resource links may be of interest for JCGO users - and hopefully useful for you.

C/C++ compiler suites


C/C++ standard "LibC" library implementations

  • Diet Libc (a libc optimized for small size)
  • NewLib (a C library intended for use on embedded systems)
  • uClibc (a C library for embedded Linux)
  • musl libc (a C/POSIX library and extensions for next generation of Linux-based devices)
  • Bionic libc (derivation of BSD standard C library code developed by Google for Android)
  • EGLIBC (a variant of GNU C Library designed to work well on embedded systems)

C/C++ stand-alone well-known libraries

  • fdlibm (LibM implementation)
  • Linuxthreads (POSIX 1003.1c kernel threads for Linux)
  • GNU Pth (The GNU Portable POSIX/ANSI-C Threads)
  • BoehmGC/BDWGC (Boehm-Demers-Weiser Conservative Garbage Collector) [development Git repo]
  • libatomic_ops (atomic memory operations library, part of BDWGC) [development Git repo]
  • Concurrency Kit (C library containing a plethora of concurrency primitives and lock-less data structures)
  • OpenPA (portable library providing a consistent C API for performing atomic operations)
  • zlib (general purpose data compression library)
  • libiconv (charset conversion library)
  • unixODBC (Open Source ODBC sub-system)
  • SQLite (self-contained serverless zero-configuration transactional SQL database engine library)
  • Watt-32 tcp/ip (Waterloo TCP/IP C library)
  • XULRunner (a Mozilla runtime package for bootstrapping XUL+XPCOM applications)
  • libffi (a portable Foreign Function Interface library)
  • FluidSynth (a real-time software synthesizer based on the SoundFont)

Small C libraries partially implementing standard API

  • TinyGC (Tiny Garbage Collector - compact implementation of Boehm GC API subset)
  • T-PThread (Tiny portable "pthread" implementation) - part of JCGO

C/C++ stand-alone graphics libraries

  • GLib/GTK+ (graphics low-level library)
  • EFL (collection of libraries that make up the foundation of DR17 window manager)
  • cairo (Multi-platform 2D graphics library)
  • LibPNG (PNG graphic format library)
  • Pango (graphics layout and text rendering library)
  • FreeType (font handling library)
  • fontconfig (font config and look up library)
  • Qt/QML (cross-platform C++ application framework)
  • DirectFB (graphics library for embedded systems)
  • Nano-X/Microwindows (compact GUI back-end library)
  • wxWidgets (cross-platform GUI library)
  • Xynth (a portable embedded windowing system, client/server display interface)
  • directx (DirectX "minimalist" headers and source)

Native executable packers and protectors

  • UPX (Universal Executable Packer)
  • ASPack (Win32 executable file compressor)
  • PC Guard (Software copy protection and licensing system)
  • IntelliProtector (Software protection service)
  • PECompact (an advanced Windows executable compressor)
  • BoxedApp Packer (utility for converting full-fledged applications to single executable)
  • MoleBox (Software Virtualization and Protection Tools)
  • DLL to Lib (a converter of a DLL file into equivalent static library)
  • Ermine (a tool that allows software to be deployed in a single executable file)
  • ELF Statifier (tool for creating from dynamically linked executables and all it's libraries one ELF file)

Archive (de)compression utilities

  • 7-Zip (7z/Zip/Tar+Gz/Tar+Bz2 archiver and multi-format unpacker for Windows)
  • WinRAR (Rar/Zip archiver and multi-format unpacker for Windows)
  • WinRK (a commercial file archiver with an ultra-high compression ratio)
  • paq8px (a file compressor with an ultra-high ratio)

DOS extenders, drivers and DOS clones

  • HX DOS extender (Win32 emulator for MS-DOS)
  • DOSLFN (driver for Long File Names in MS-DOS)
  • dosppp (PPPD for MS-DOS)
  • FreeDOS (free MS-DOS compatible OS)
  • RxDOS (fast MS-DOS real-time clone)
  • RTOS-32 (Win32 API Compatible Embedded Real-time OS)
  • Wine HQ (a program loader running Windows applications on Linux/POSIX)

Java VM with complete SDK suites


Stand-alone Java VM implementation

  • Aegis VM (Java VM implementation)
  • BeKaffe (Kaffe Java VM for BeOS)
  • cacaovm (Java VM with JIT compiler)
  • IKVM.NET (Java VM for .NET)
  • M-JVM (a KVM written in Java)
  • J-Smile VM (Java VM with GUI support)
  • JAmiga (Java VM for Amiga)
  • JamVM (Java VM implementation)
  • Jato VM (JIT-only Java virtual machine that aims to support JVM specification version 2)
  • JaOS (Java VM implementation)
  • Jelatine (Java ME/CLD VM implementation)
  • Jikes RVM (Research Virtual Machine)
  • joeq (Java VM written in Java)
  • Kaffe VM (Java VM with JIT compiler)
  • Kissme (Java VM implementation)
  • leJOS (Java system for Lego Mindstorms RCX)
  • TinyVM (replacement firmware and VM for Lego Mindstorms RCX)
  • MysaifuVM (Java VM for Windows Mobile)
  • CrEme (a J2ME/CDC Java VM technology for Embedded platforms)
  • phoneME (a J2ME open-source implementation for mobile handsets)
  • IBM J9 WEME ppro10 (Java VM for PocketPC and Windows Mobile on ARM)
  • NanoVM (a portable tiny Java VM running on microcontrollers with at least 8k code space, especially Atmel AVR)
  • simpleRTJ (a small footprint Java VM for embedded and consumer devices)
  • JControl (an extremely small and compact embedded Java solution, optimized for systems with low processing power)
  • JamaicaVM (a virtual machine and build environment for running realtime Java programs)
  • Squawk (an open source virtual machine for the Java written in Java)
  • OJI (Open Java VM Integration for Mozilla browsers)
  • ORP (Java VM Open Runtime Platform)
  • Aonix PERC (Real-time Java VM implementation)
  • ajile JME (a silicon-based real-time J2ME platform)
  • SableVM (Java VM implementation)
  • shuJIT (Java Just-in-Time Compiler for x86 processors)
  • teaseme (Linux-kernel Java VM)
  • Waba for DOS (Waba VM for MS-DOS with TCP/IP)
  • WabaVM (Waba VM and SDK for embedded devices)
  • Wonka (Java VM implementation)
  • EVE (Eve Virtual Machine and SDK for mobile and desktop PC)
  • Maxine VM (a meta-circular research VM)
  • Jaune (an ahead of time compiler for small systems)
  • VMKit (a framework based on LLVM for building virtual machines)
  • IcedRobot (The GNUlization of Android - an attempt to bring the Android API on Linux Desktop)

Java to native code "through C" static compilers

  • JCGO (Java source to C code translator) [development Git repo]
  • JC (Java class into C source translator)
  • Toba (Java code to C code translator)
  • I3J2C (Java to C "intentional" compiler)
  • j2c (J2C converts Java source into compilable C++ code)
  • MCU Java Source (Java source to C source translator targeting MCU firmware)
  • Java2C (a translator from Java to C language for embedded and realtime applications)
  • Ptolemy II Java-to-C (a Java to C compiler based on Ptolemy 2 framework)
  • alcheMo (automated system to port a J2ME application to BREW, Windows Mobile and iPhone)
  • J2ME Polish Janus (A toolset for porting J2ME/MIDP applications to different handsets - Windows Mobile, iPhone, Android)
  • j2me-brew (porting framework that makes porting of J2ME applications to BREW C++ platform easy)
  • Java2CPP (Compilers Project, compiles Java code to C++)
  • Java 2 CSharp (an automatic translator of Eclipse Java projects into Visual Studio ones)
  • Qs Moka (a Java source to TIGCC project converter)
  • Java2C++ (a translator from Java to C++)
  • Janus (Java to C++ source code converter without GC and threads support)
  • LLVM-DVK (Dalvik-to-native code translator using LLVM optimization framework)
  • J2ObjC (A Java to iOS Objective-C translation tool and runtime)

Direct Java to native code static compilers

  • GNU GCJ (a portable optimizing ahead-of-time compiler for Java - GCC front-end)
  • micro-libgcj (a lightweight version of the GCJ runtime and micro-SWT libraries)
  • Excelsior JET (Java to native executable converter)
  • JNC (Java to native executable converter)
  • Manta (Java to native code compiler)
  • Vortex (Java to native code compiler)
  • Timber (static whole-program compiler for Spar/Java)
  • JFE (a Front End for the Java Language by Edison Design Group allowing native execution of Java code without JVM)

Java-based PC Operating Systems

  • JNode (Java OS written in Java)
  • JOS (Java Operating System)
  • JJOS (Java VM based on jJOS/decaf)
  • JX OS (flexible Java OS)
  • Sanos (Minimal OS kernel for Java HotSpot VM)
  • Odiseo Desktop (Java multitasking environment)

C code to Java translators

  • AMPC (C to Java class files translator)
  • Novosoft C2J (C-code sources into Java classes translator)
  • c2java (the preprocessed C code to Java converter)
  • Mips2Java (C to Java source translator through MIPS GCC)
  • NestedVM (a tool providing MIPS binary translation for Java bytecode)
  • Cibyl (a binary translator that allows compiled C programs to execute on J2ME phones)

Multi-language translator suites

  • Octopus (syntax translator between Java, C#, VB.NET, C++)
  • XES (an XML-based source converter between Java and C++/C#)
  • Tangible Instant (Accurate Source Code Converters between VB, C#, C++, Java)
  • xmlvm (Java/.NET/Ruby compiler into Java/.NET/JavaScript/Python/Objective-C/C++)

Java-to-exe wrappers


Java class decompilers

  • Jad (Java Decompiler)
  • JadRetro (a Java decompiler helper supporting Java 1.5+ classes) [Maven artifact details]
  • JadClipse (a plug-in integrating Jad with Eclipse IDE)
  • IdeaJad (IntelliJ IDEA plugin for java class decompilation using Jad)
  • JadAlign (source aligner/reformatter for java files decompiled by Jad)
  • Jad mode for Emacs (Emacs integration with Jad)
  • JD-GUI (Yet another fast Java decompiler)
  • Procyon Java Decompiler (Open-source Java decompiler supporting Java 8)
  • JODE (Java Optimize and Decompile Environment)
  • CupOfJoe (a Java Decompiler supporting Java 5, disassembler and bytecode debugger)
  • javad (Java decompiler written in C++ aimed to decompile JDK v1.6 class files)
  • JDec (Java Decompiler)
  • "dcompiler" (JADO - Java Decompiler and Obfuscator)
  • debyte (a Java Decompiler)
  • JReversePro (Java Decompiler)
  • HBD (The HomeBrew Decompiler)
  • Sothink Java Decompiler (SourceTech Java decompiler)
  • Dava (Java Decompiler)
  • Java Clazz Utils (Java class files manipulation utility which includes Java classes viewer and decompiler)
  • Dedexer (a disassembler tool for Android DEX files)
  • dex2jar (Decompiler tools to work with Android .dex and java .class files)

Java class cross-version converters

  • Retroweaver (Java 1.5 to Java 1.4 class converter)
  • JadRetro (Java 1.5+ to Java 1.4 class converter targeting class decompilation)

Java source and code checkers


Stand-alone Java source to byte code compilers

  • Jikes (IBM Java byte-code compiler)
  • KJC (Kopi Java Compiler)

Java assemblers

  • Jasmin (an assembler for the Java VM)

Java optimizers and obfuscators

  • ProGuard (Java class shrinker, optimizer, obfuscator)
  • jobfuscate (Duckware Java Class Obfuscator)
  • Zelix KlassMaster (Java byte-code optimizer and obfuscator)
  • yGuard (a free Java bytecode obfuscator and shrinker)
  • GuardIT for Java (an Interpreted Code Protection tool)
  • RetroGuard (a general-purpose Java obfuscator)
  • Allatori (a second-generation Java obfuscator)
  • DexGuard (specialized optimizer and obfuscator for Android)

Java properties converters

  • JPropJav (java properties to class source file converter) - part of JCGO

Java parser generators

  • JavaCC (Java Parser Generator)
  • Polyglot (Extensible Compiler Toolkit)
  • Coco/R (a multi-language LL(I) scanner/parser generator)
  • JFlex (Fast Scanner Generator for Java)
  • ANTLR (ANother Tool for Language Recognition - Parser Generator)

Java code analysis libraries

  • Soot (Java Optimization Framework)
  • BCEL (Byte Code Engineering Library)
  • Java ASM (Java byte-code manipulation framework)
  • libjit (a language-independent Just-In-Time compilation functionality implementation)

Stand-alone Java Runtime Standard Environment class libraries


OpenJDK integration projects

  • IcedTea (a harness to build OpenJDK using Free Software build tools)
  • openjdk4jikesrvm (bridge to use OpenJDK as JikesRVM class library)
  • CVMI (the OpenJDK Common Virtual Machine Interface)

Java class libraries for real-time systems


C++ libraries implementing Java API

  • NaJA (Native C++ Java-like API)

Pure Java CPU emulators

  • JPC (x86 PC emulator written in Java)
  • JZX (Java Z80 "ZX Spectrum" emulator)

Java stand-alone communication and network libraries


Java GUI libraries

  • Eclipse SWT (The Standard Widget Toolkit for Java)
  • SWTSwing (a port of the SWT graphical toolkit to Swing)
  • SwingWT (Swing and AWT API over SWT library)
  • IBM J9 WEME ppro10 UI (a standalone AWT implementation over SWT library)
  • Java-GNOME (Java bindings for GNOME and GTK libraries)
  • Qt Jambi (Qt library for Java)
  • QtAWT (Qt-AWT Java bindings for KDE)
  • KDEJava/Koala (Qt Java wrapper for KDE)
  • Escher (X-Window System library written in Java)
  • JCNIX (X-Window AWT CNI back-end)
  • PJA (Pure Java AWT back-end)
  • sdljava (Java bindings for Simple Direct Media Layer)
  • XTC (X-Window protocol implementation in Java)
  • GNU win32peer (Win32 AWT back-end for Classpath)
  • CHARVA (Java AWT for Text Terminals)
  • TUI AWT (a Text User Interface for the Java AWT)
  • XP Look and Feel (alternative Swing XP-like "look-and-feel")
  • LWUIT (a UI library for Java ME applications)
  • LWUIMB (a port of LWUIT on top of the MicroBackend library)
  • WeirdX (a pure Java X Window System Server implementation)

Java stand-alone miscellaneous libraries

  • JNA (Java library for accessing native shared/dynamic-link libraries with neither JNI nor native code required)
  • xFunction (a commercial library for DLL/shared libraries code invocation directly from Java without any JNI programming)
  • HSQLDB (a pure Java Database)
  • SqliteJDBC (a Java JDBC driver for SQLite)
  • Bouncy Castle Crypto (a lightweight cryptography API)
  • iText (a library generating PDF files)
  • JOrbis (a pure Java Ogg Vorbis decoder)
  • MicroEmulator (a pure Java ME implementation in Java SE)

Java build-automation tools

  • Apache Ant (a Java-based build tool)
  • Apache Maven (a Java-based software project management and comprehension tool)

Java-based text editor tools

  • jEdit (a pure-Java mature programmer's text editor with plugins)

Java benchmarking

  • CaffeineMark (Embedded CaffeineMark Toolkit)
  • SciMark (Java Numeric Benchmark)
  • LinpackJava (Linpack Benchmark - optimized Java version)
  • JCK (Java Compatibility Kit)
  • JFCMark (Benchmark suite measuring/comparing performance of JFC/Swing)
  • GCBench (a Garbage Collector benchmark)