Skip to main content

Native compilers for Windows


It is remarkable to me that so few  native compilers are still available on the market today. I am well aware of the benefits of .Net and Java byte-code compilers. However, there are a number of products that are better suited to native code.   Regardless of the reasons, it is troubling to note how few commercial/high quality competitors are left.

Worse yet, some of these compilers are basically out to pasture, obsolete, no longer maintained, old, crusty, and ultimately a dubious idea to base any professional work on. But they might still be a ton of fun to explore.

Here are a few products that still generate native code. I do not include compilers that run byte codes or tokenized source. I include compilers that generate assembly or "C" source that can the n be assembled/compiled to binaries.

Inclusion in this list is not an endorsement and neither is exclusion a judgement - I am merely collecting these lists as a service to myself and others.  The main criteria for inclusion is the generation of native code at compile time, not JIT and not interpreted.

By the way, it seems that 64-bit compilers are even rarer than Win32 compilers.

Many of these are no longer actively maintained which is too bad.

Ada Compilers

APL
none known. See J language below for alternative.


Assemblers

NASM -the netwide assembler.


BASIC Compilers
C/C++ Compilers
NOTE: if you are doing Windows development using free tools, you probably need to get the Windows-specific headers and libraries. You can get these at:
http://www.mingw.org/

CAML Compiler
COBOL Compilers
D Compilers
DIBOL
Factor Compiler

Factor has an optimizing compiler! This is a neat functional programming language very similar to Forth but far more powerful.
FORTRAN Compilers
Naturally, Fortran has many native compilers.
Google GO
Haskell




Lisp Compilers (Common Lisp and Scheme)
Modula-2/3 Compilers
ML Compiler
Oberon 2 Compilers
OCCAM Compilers
  • none known

OCAML Compilers
  • OCaml for Windows (uses Cygwin to run but generates Win32 exes that don't require cygwin)

Pascal Compilers
PL/1 Compilers
Prolog Compilers
Oddly enough, there are a ton of compilers for prolog, which is funny since this was originally an interpreted language.
SIMULA
What happened to Lund Simula?

SNOBOL/SPITBOL
none known.
Catspaw used to provide a Spitbol-386 compiler.

XBASE
Harbour Project - https://harbour.github.io/







Comments

Popular posts from this blog

Using Fossil SCM with Jenkins CI

Currently, there is no SCM plugin for Fossil in Jenkins. I've been coding one but it's not yet ready.

Update: I have permission from my employer to open source the plugin. Now if only I had the time...

Update 2:  I've created a github repo for my code: 
https://github.com/rjperrella/jenkins-fossil-adapter

It turns out, you should be able do a pretty good job of integrating Fossil into Jenkins without using such a plugin.

Here's my idea:

For now, you should just need the Xtrigger plugin. This plugin is capable of triggering a build based on a number of things changing. Among them, a web-addressable piece of content in XML.

Fossil is able to generate RSS feeds trivially.

On the Fossil machine, you'll want to start the fossil server as usual:

$ fossil server --port=1234

On the Jenkins machine, you'll simply install the Xtrigger plugin and set it to trigger a build, by polling the following URL for changes:

   http://<FOSSILMACHINE>:1234/timeline.rss?y=ci&n=0

T…

Why Fossil-SCM is an excellent choice for introductory programming courses

Fossil SCM for introductory programming courses The use of source control management (or version control - take your pick) is an important skill for new programmers to adopt.  It is expected that all programmers use SCM in their daily jobs, in order to coordinate changes among team members.  Thus, getting beginners to adopt good habits early should be a goal.

While GIT (git-scm.com)  is certainly the dominant source control system of today, I believe instructors of introductory classes in programming should consider an alternative called Fossil (fossil-scm.org).

Fossil has several compelling advantages in education over GIT.  You will see that I value the practical aspects of Fossil even more than its technical capabilities.  After all, an instructor has a limited amount of time to have an impact and they don't want to waste time doing technical support on a tool that is too complex.  Helping one or two people is fine but helping 30 can be a real burden.

Simple installation and …

So you want to use Fossil DVCS as your SCM solution? Here are some first steps.

First steps when using Fossil SCM.

Download the executable from http://www.fossil-scm.org

Depending on your programming language and operating systems, you'll want to make sure you ignore certain kinds of file extensions.

You might want to create a configuration file and store it in fossil for use in other fossil setups.  The configuration file goes into the top level directory under a folder called ".fossil-settings".  The filename matches the configuration setting, thus it is called "ignore-glob".

For unix/linux, I would ignore the following file extensions (you can put one per line or separate them with commas. I'll use the per line convention here.)

*.o
*.a
a.out
*~
*.pipe
*.tar

For Windows, I would ignore these:

*.obj
*.exe
*.lib
*.tmp
*.$$$


Next, you'll want to decide on binary file for the purpose of merging. These go in the .fossil-settings/binary-glob file:

*.jpeg
*.jpg
*.gif
*.bmp
*.mpeg
*.mpg
*.avi
*.flv
*.ico

Typing fossil settings binary-…