Projects / The Frink Language

The Frink Language

Frink is a calculating tool and programming language designed to help you in the real world. It tracks units of measurement throughout all calculations and ensures that answers are correct. It converts between systems of measurement, and has a huge library of physical data. It is both a simple calculator for quick calculations and a full-fledged programming language for large tasks. It draws high-quality graphics, handles conversions between time zones, currencies, and historical values of the U.S. dollar and the British pound, translates between several languages, does date/time math, and more.

Operating Systems

Recent releases

  •  27 Jul 2010 08:28

    Release Notes: This release adds a lot of language translations using the not-very-reliable Google Translate engine. In addition, many improvements have been made for the Android platform. The stability of Frink Server Pages was improved.

    •  20 Jun 2010 10:39

      Release Notes: This release fixes subtle problems in the mathematical transformation library. Frink can now solve systems of simultaneous equations. In addition, the Android release has been improved to prompt users to save changes to their programs when loading or creating a new program.

      •  08 May 2010 12:27

        Release Notes: This release expands the power of Frink's symbolic math capabilities. Sample programs have been added that allow Frink to solve systems of simultaneous equations.

        •  30 Apr 2010 05:49

          Release Notes: This release adds a variety of small improvements. The Frink-Java bridge has been extended to handle more string conversions. Many error messages have been improved. The Swing GUI has been made more usable. Several methods for storing colors have been added. Several mathematical functions were added. Support for the Android platform has been greatly improved, including better threading, fixing some graphics issues, and more program safety.

          •  27 Jan 2010 11:51

            Release Notes: This release fixes a bug that might have produced the error, "Expression requires 2 or more arguments." It is highly recommended that you upgrade. In addition, symbolic transformation rules have been improved, the Emacs mode for Frink can now run programs directly, and several major usability improvements have been made to the Android user interface.

            Recent comments

            11 Mar 2007 10:16 Ice07

            Thanks, I like it very much.

            14 Dec 2005 02:25 eliasen

            Re: version info
            Oops, something weird happened with the Command-Line Options link above.

            14 Dec 2005 02:21 eliasen

            Re: version info

            > There doesn't seem to be any way to find

            > out what version of

            > frink a particular copy is, e.g. a -v

            > command line option.

            > Is there? If not, how come?


            Because ye 'ave never asked, Bill, me laddie! I've had some version code floating around, but I never checked it in. You'll note that the current version of Frink (2005-12-14) does have a -v or --version command-line switch to display the version number and exit. Please see the Command-Line Options section of the documentation. Hope this helps! I may add a feature to access this programmatically later.

            14 Dec 2005 00:19 billposer

            version info
            There doesn't seem to be any way to find out what version of

            frink a particular copy is, e.g. a -v command line option.

            Is there? If not, how come?

            18 Mar 2004 08:11 eliasen

            Re: Frink missing Saybolt seconds?
            Thanks for the references on the viscosity measurements! I looked a bit further and, as you mentioned, these numbers seem to be empirically measured at only a couple of very specific temperatures, so a conversion to a single viscosity value may be pretty questionable. I'll do some further research to see if this can be turned into a more continuous function for a reasonable temperature range.

            There are lots of similar physical-chemical measurements that I'd like to put into Frink, but to do it right, there are usually many parameters that need to be specified. For example, if you want to know the density of carbon, you'd also need to specify at what temperature and pressure, and what phase (e.g. graphite or diamond or buckyballs?) It's all feasible, but the number of parameters that one needs to specify (or implicitly accept defaults for) may be large.

            Thanks for the suggestions! If you can suggest an interpolating function, let me know!


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.