Bigloo

-----------------------------------------------------------
Bigloo (1.9) (level b)                                ,--^, 
`a practical Scheme compiler'                   _ ___/ /|/  
Tue Jun 24 23:57:03 MET DST 1997            ,;'( )__, ) '   
Manuel Serrano                             ;;  //   L__.    
email:                                     '   \    /  '    
Manuel.Serrano@cui.unige.ch                     ^   ^       
-----------------------------------------------------------
1. Description 2. Registration 3. Getting Bigloo 4. Doc. 5. Examples 6. Misc

1. Description

Bigloo 1.9 is a Scheme system devoted to one goal: enabling Scheme based programming style where C(++) is usually required. Bigloo attempts to make Scheme practical by offering features usual to traditional programming languages but unusual to Scheme and functional programming:

The release 1.9b was successfully compiled on:

It should run correctly (but has not been tested) on:

For those who already know Bigloo: The release 1.9 mostly presents new language constructions. This release does not improve the compilation results (except that allocation routines are a bit faster). Here is the list of the changes:

2. Registration

Register yourself to the new Bigloo mailing list! Fill the following form and you will be notified by email of next versions.
Name:

Firsname:

Email:

3. Getting Bigloo

You can get Bigloo by clicking on one of these:

If the transfer fails due to connections time out, you can alternatively load it from ftp (cui.unige.ch:/pub/serrano/bigloo1.9b.tar.gz) or pick these files: They have been produced by the Unix split command. Unsplited they will produce a uuencoded version of the Bigloo1.9b.tar.gz file.

4. Documentation

In order to taste the flavor of Bigloo you can pick here its documentation
Bigloo1.9.ps.gz (120k).

5. Examples

5.1 Foreign Interface

This example illustrates the use of C functions into Bigloo. This program uses the Unix functions fork, wait and sleep to fork and wait for child process. This program illustrate how to import C functions. This operation require Bigloo extern module clause that can be automatically produced by the cigloo tool (
process.scm).

5.2 Foreign Interface (2)

This example illustrates the use of C data structures into Scheme code. It uses the rusage Unix facility to measure the time spent by evaluation. This program illustrates how to define complex C data structures and how to use (allocate and access) them into Bigloo (runtime.scm).

5.3 Object

This example makes use of the Bigloo object system. It contains the definition of classes, generic functions and methodes. It instantiate objects and illustrates how to use them (object.scm).

5.4 Lexing

This example contains the definition of a regular grammar that reads arabic and roman numbers. The main program is a simple read-eval-print loop that performs simple numeric computation on arabic and roman numbers (roman.scm).

5.5 Parsing

This example illustrates the use of Lalr grammars into Bigloo. This program contains the definition of regular grammars and one lalr grammar. It reads a file contains the definition of an lalr grammar expressed in the Yacc syntax and rewrites it into the Bigloo syntax (yacc2bigloo.scm).

6. Miscellaneous

6.1 Emacs

My Emacs regular expressions to highlight Bigloo1.9 code:
(setq scheme-font-lock-keywords 
  (list
   (cons (concat "^\(\\(define\\|define-inline\\|define-struct"
		 "\\|define-macro\\|define-generic\\|define-method"
		 "\\|define-command\\)[ ]+\\(\(.*\)\\|[^ \n]+\\)")
	 color-function)
   (cons "^\(module[ ]+[^ \n]+" color-2)
   (cons "::[^ \n)]+" color-7)
   (cons (concat "\(\\(type\\|export\\|import\\|from\\|static\\|use"
		 "\\|include\\|foreign\\|extern\\|Cforeign\\)[ \n]")
	 color-type)
   (cons (concat "\(\\(class\\|wide-class\\|final-class\\|generic"
		 "\\|inline\\|macro\\|infix[ ]macro\\)[ \n]")
	 color-6)
   (cons (concat "\(\\(let[ ]\\|let[*][ ]\\|letrec[ ]"
		 "\\|set[!][ ]\\|with-access\\|instantiate\\|duplicate"
		 "\\|widen[!]\\|lambda[ ]\\|labels[ ]"
		 "\\|multiple-value-bind[ ]\\|match-case[ ]\\)")
	 color-keyword)
   (cons (concat "\\[assert[^\]]*\\]\\|\(assert[^\)]*\)\\|\(error[ \n]"
		 "\\|\(warning[ \n]\\|(pragma[ ]\\|trace \\|\(bind-exit "
		 "\\|\(try \\|\(unwind-protect")
	 color-3)
   (cons "\\(`\\|,\\|'\\|,@\\)" color-2)))

6.2 Bug report

You can send bug report using:
Manuel.Serrano@cui.unige.ch

6.3 Copyright

Copyright (c) 1997 by Manuel Serrano. All rights reserved.

This program is distributed in the hope that it will be useful. Use and copying of this software and preparation of derivative works based upon this software are permitted, so long as the following conditions are met: This software is made available AS IS, and no warranty is made about the software or its performance.

Other rights can be granted fot the use of Bigloo. For questions, please contact the author.