10 Top Tools for Novelists
The software featured in this article is designed to meet the specialised needs of a budding novelist. There's the finest open source distraction-free tools, software designed to create visual novels, and tools to help capture and visualise ideas.

Openbravo is an ERP business solution for small and medium sized companies. Its database structure is originally based on Compiere. Openbravo uses a fully Web based client/server architecture, and can be used from any Web browser. It has support for PostgreSQL and Oracle database back-ends. It is currently available in Spanish, English, Italian, Portuguese, and Russian. Read more

GCC, the GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...). GCC development is a part of the GNU Project, aiming to improve the compiler used in the GNU system including the GNU/Linux variant. The GCC development effort uses an open development environment and supports many other platforms in order to foster a world-class optimizing compiler, to attract a larger team of developers, to ensure that GCC and the GNU system work on multiple architectures and diverse environments, and to more thoroughly test and extend the features of GCC. Read morehot

(commercial) The Intel® C++ Compiler for Linux* delivers rapid development and winning performance for the full range of Intel® processor-based platforms. This compiler product automatically optimizes and parallelizes software to take best advantage of multi-core Intel® processors. This compiler is also available as a separate product that incorporates Cluster OpenMP*. The Intel C++ Compiler for Linux with Cluster OpenMP provides all the functionality of the Intel C++ Compiler for Linux, plus a simple means of extending OpenMP parallelism to 64-bit Intel® architecture-based clusters. Read morehot

4tH compiler is a Forth compiler with a little difference. Instead of the standard Forth engine it features a conventional compiler. 4tH is a very small compiler that can create bytecode, C-embeddable bytecode, standalone executables, but also works fine as a scripting language. It supports over 85% of the ANS Forth CORE wordset and features conditional compilation, pipes, files, assertions, forward declarations, recursion, etc. It comes with an RPN calculator, line editor, compiler, decompiler, C-source generators, and a virtual machine.

Agora BASIC is a BASIC compiler for POSIX systems. It aims to implement all of Standard Full BASIC (ANSI INCITS 113-1987), with useful but compatible extensions. Agora BASIC specifically does not aim to be a "modern" BASIC dialect.

ASEM-51 is a two-pass macro assembler for the Intel MCS-51 family of microcontrollers. The ASEM-51 assembly language is based on the standard Intel syntax, and implements conditional assembly, macros, and include file processing. The assembler can output object code in Intel-HEX or Intel OMF-51 format as well as a detailed list file.

ACC (AspeCt-oriented C) enables aspect-oriented software development with the C programming language. AspeCt-oriented C consists of a compiler that translates code written in AspeCt-oriented C into ANSI C code. This code can be compiled by any ANSI C compliant compiler.

Bas is an interpreter for the programming language BASIC, written in ANSI C for UNIX systems. Bas offers many ANSI BASIC statements for structured programming, such as procedures, local variables and various loop types. Further there are matrix operations, automatic LIST indentation and many statements and functions found in specific classic dialects. Line numbers are not required.

cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. It is based on a C compiler that was originally adapted for the Atari 8bit computers by John R. Dunning. The original C compiler is a Small C descendant but has several extensions, and some of the limits of the original Small C compiler are gone.

(commercial) Compaq C compiler provides the same state-of-the-art optimization technology for the Alpha processor as offered by the very latest Compaq compilers on Compaq's proprietary Alpha platforms, and offers some amount of gcc compatibility in both language features and command line processing.

This software is a compiler for Minimal BASIC as specified by the ECMA-55 Minimal BASIC (81KB, updated) standard from the ECMA International organization (formerly known as the European Computer Manufacturers Association).

The PathScale EKOPath Compiler Suite offers programmers a rich set of tools and one of the world's most sophisticated optimization infrastructures to maximize program performance on any Intel® 64 or AMD64 platform supporting Intel® MMX?, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AMD SSE4A and AVX.

Ficl is a complete programming language interpreter designed to be embedded into other systems (including firmware based ones) as a command, macro, and development prototype language. Ficl syntax is based on ANS Forth and the code is ANSI C.

Free Pascal (aka FPK Pascal) is a 32 and 64 bit professional Pascal compiler. It is available for different processors: Intel x86, Amd64/x86_64, PowerPC, Sparc. The discontinued 1.0 version also supports the Motorola 680x0. The following operating systems are supported: Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, OS/2, Netware (libc and classic) and MorphOS. Read more

FreeBASIC is a 32-bit compiler with a syntax that is as compatible as possible with MS-QuickBASIC (including the GFX statements), but that adds new features such as pointers, unsigned data types, inline-assembly, a pre-processor, and many others. Read more

The GCC UPC toolset provides a compilation and execution environment for programs written in the UPC (Unified Parallel C) language. The GCC UPC compiler extends the capabilities of the GNU GCC compiler. The GCC UPC compiler is implemented as a C Language dialect translator, in a fashion similar to the implementation of the GNU Objective C compiler.

GNU Cim is a compiler for the programming language Simula (except unspecified parameters to formal or virtual procedures (see the documentation for how portable code for formal procedures can be written)). It offers a class concept, separate compilation with full type checking, interface to external C routines, an application package for process simulation and a coroutine concept.

(commercial) Irie Pascal is a Standard (ISO/IEC 7185) Pascal compiler and interpreter. Programs compiled with Irie Pascal run on any supported platform. The supported platforms are currently (Linux, Win95/NT, OS/2, DOS).

mary is an optimizing native code Forth compiler for Microchip PIC microcontrollers. It's an Open Source project published under the GNU license. mary requires an ANS Forth system whose cell width is at least 16 bits.

NASM is an 80x86 assembler designed for portability and modularity. It supports a range of object file formats including Linux a.out and ELF, COFF, Microsoft 16-bit OBJ and Win32. It will also output plain binary files. Its syntax is designed to be simple and easy to understand, similar to Intel's but less complex. It supports Pentium, P6, MMX, 3DNow! and SSE opcodes, and has macro capability. It includes a disassembler as well.

OpenCOBOL is an open-source COBOL compiler. OpenCOBOL implements substantial part of the COBOL 85 and COBOL 2002 standards, as well as many extensions of the existent COBOL compilers. OpenCOBOL translates COBOL into C and compiles the translated code using GCC. You can build your COBOL programs on various platforms, including GNU/Linux, Mac OS X, and Microsoft Windows.

OrgASM Assembler is a machine code assembler for 6502 (and derivative) microprocessors. The aim of this project is to build a fast and flexible assembler that supports object code linking, inclusion of source files and macros. It will also seamlessly integrate with common programming tools like make and cpp.

A native PL/I compiler using the GNU Compiler Collection. PL/I is a third-generation procedural language suitable for a wide range of applications including system software, graphics, simulation, text processing, Web, and business applications.

PopAsm is an assembler (an assembly language compiler) designed to support the syntaxes of TASM/MASM and NASM, gathering together the best features of each of them. It is intended that it will support all instructions from Intel compatible CPUs, including MMX, 3DNow!, and SSE extensions.

QB2C is a package which makes possible execution of BASIC programs under most of the UNIX systems provided that a C compiler is available on the system. It essentially
consists of the BASIC-to-C translator (qb2c) which translates BASIC code into C code, graphics included.

SDCC is a Freeware, retargettable, optimizing ANSI - C compiler that targets the Intel 8051, Maxim 80DS390 and the Zilog Z80 based MCUs. Work is in progress on supporting the Motorola 68HC08 as well as Microchip PIC16 and PIC18 series. The entire source code for the compiler is distributed under GPL.

sgasm is a simple generic Assembler that is easy changeable for your own vm's instruction set. It supports many types of instructions, parameter types, Offset-Jumps and so on. It is also very fast and platform independent.

Table Driven Assembler is a free portable cross assembler for any kind of assembly language. It should be possible to use it as a compiler to any target microprocessor using a table that defines the compilation process.

Ulm's Modula-2 System is a software development environment for Modula-2 which runs on several UNIX systems. The system consists of a compiler which is derived from the 4-pass Lilith Modula-2 compiler of the ETH Zürich and conforms to [PIM3], a library which interfaces UNIX system-calls and provides system-independent abstractions for input and output processing and ASCII-terminal based windowing systems, a set of tools for generating and updating makefiles, debugging, and profiling, and documentation in the form of manual pages and this document.

UniSIMD assembler is a low-level macro assembler framework unified across ARM and x86 architectures. It establishes a subset of both core and SIMD instruction sets with strictly defined common API, so that application logic can be written and maintained in one place without code replication.