Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:package:cram_language [2013/12/12 15:04] – created gkazhoyadoc:package:cram_language [2021/05/02 20:56] (current) gkazhoya
Line 1: Line 1:
 +**Disclaimer: this page is outdated, so some code might not run. See the Tutorials page for more up to date code.**
 +
 +====== cram_language ======
 +
 The CRAM-language is a set of macros and functions on top of Common Lisp. It is based on the ideas of Drew !McDermott's RPL. Programs in the CRAM language are compiled down to native machine code and make heavy use of the operating system's native multithreading implementation.  The CRAM-language is a set of macros and functions on top of Common Lisp. It is based on the ideas of Drew !McDermott's RPL. Programs in the CRAM language are compiled down to native machine code and make heavy use of the operating system's native multithreading implementation. 
  
 == Installation and usage == == Installation and usage ==
  
-It is suggested to use SLIME for interactive lisp development. If you are using rosemacs, you can use `M-x slime-ros` to start up slime with the version of sbcl that is distributed with the [[roslisp_support]] stack. If you have [[roslisp]] setup properly, you can load the cram language by invoking ''rosmake cram_language'' and then evaluating ''(ros-load:load-system "cram_language" :cram-language)'' in the slime REPL. Change to the CPL package.+It is suggested to use SLIME for interactive lisp development. If you are using rosemacs, you can use `M-x slime-ros` to start up slime with sbcl (''sudo apt-get install sbcl''). If you have [[http://wiki.ros.org/roslisp|roslisp]] setup properly, you can load the cram language by invoking ''rosmake cram_language'' and then evaluating ''(ros-load:load-system "cram_language" :cram-language)'' in the slime REPL. Change to the CPL package.
  
 If you create a package that uses the CRAM language, don't use the package COMMON-LISP but the package CPL instead. Example: If you create a package that uses the CRAM language, don't use the package COMMON-LISP but the package CPL instead. Example:
Line 207: Line 211:
 By structuring the robots plans as goals the executive framework gains new meta-abilities, such as the robot being able to explain at any time what purpose it is following, or handling of failures at runtime given the context of current purposes. By structuring the robots plans as goals the executive framework gains new meta-abilities, such as the robot being able to explain at any time what purpose it is following, or handling of failures at runtime given the context of current purposes.
  
 +==== Further References ====
 +A clear and complete introduction is [[https://common-lisp.net/~trittweiler/bachelor-thesis.pdf|Tobias Christian Rittweiler's bachelor thesis on CRAM language]].