This repository has been archived by the owner on Oct 13, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
A toy functional language created through the abuse of C
License
emdash/goof
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Copyright (C) 2010 Brandon Lewis Introduction Goof is an experimental functional language with a novel implementation. It is a library of functions and macros which combine to create the illusion that you are writing in a high-level language. Despite this, goof programs are C programs. They are compiled and executed like any other. Don't be fooled into thinking it's efficient: Goof is essentially a dynamic language, with the runtime implemented directly in C. Goof programs are expressed as nested calls to functions and macros. Each function returns a pointer to an object which implements a language contruct. Known Downsides (or, "Why in God's name are you doing this?") - I just wrote it over the weekend for fun - No memory management at present - Dynamic implementation is probably inefficient - I am largely ignorant of how concurrency might affect this system - Possibly difficult to debug, and syntax erros are difficult to resolve due to the heavy abuse of preprocessor macros. Potential Upsides Though I acknowledge that this is really a pretty terrible thing to do to an unsuspecting C programmer, I feel that there might be certain useful features of this approach that are worth exploring. In addition to the well-known advantages of functional programming, goof might offer the following: - educational value - small implementation - easy to add new constructs to the language - easy to inter-operate between C and goof - requires nothing other than a C compiler (after removing the glib code) - you potentially mix and match different semantics within the same executable (e.g. applicative versus normal order, eager versus strict, allow non-deterministic evaluation etc). Liscence Goof is available under LGPL v3
About
A toy functional language created through the abuse of C
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published