home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / pd3.lzh / SBPROLOG2.2 / SIM / BUILTIN / Readme < prev    next >
Text File  |  1991-08-10  |  2KB  |  72 lines

  1. The files in this directory contain the C code for the builtin predicates
  2. supported by the system.
  3.  
  4. To add a builtin to the system, follow the procedure outlined below:
  5.  
  6. I. Installing C code:
  7.  
  8. *    Go to the directory "sim/builtin".
  9.  
  10. *    Look at the #define's in file builtin.h and choose a number (between
  11.     0 and 255) which is not in use, to be the new builtin number.  Let
  12.     that number be N1.  Add to builtin.h the line: 
  13.  
  14.         #define   NEWBUILTIN   N1
  15.     
  16. *    The convention is that the code for the builtin will be in a 
  17.     parameterless procedure named b_NEWBUILTIN. Modify the file
  18.     sim/builtin/init_branch by adding the lines:
  19.  
  20.         extern int b_NEWBUILTIN();
  21.  
  22.         set_b_inst ( NEWBUILTIN, b_NEWBUILTIN);
  23.  
  24.     in the appropriate places.
  25.  
  26. *    The builtins are compiled together into one executable file,
  27.     "builtin".  Update "Makefile" by appending the name of your object
  28.     code file at the end of the line "OBJS = ..." and inserting the
  29.     appropriate commands to compile your C source file, e.g.:
  30.     
  31.         OBJS = [ ... other file names ... ] newbuiltin.o
  32.         
  33.         ...
  34.         
  35.         newbuiltin.o: $(HS)
  36.             cc $(CFLAGS) newbuiltin.c
  37.  
  38. *    Execute the updated Makefile to create an updated executable
  39.     file "builtin".
  40.  
  41. *    Go to the directory "sim" and execute Makefile to install the new
  42.     file "builtin".
  43.  
  44. II. Installing Prolog code:
  45.  
  46. *    Assume that the builtin predicate to be added is "newbuiltin/4".
  47.     
  48. *    Go to the directory "lib/src" (where the Prolog source for the
  49.     builtin and library routines is kept.)
  50.     
  51. *    Each builtin definition is of the form
  52.  
  53.         pred( ... ) :- '_$builtin'(N1).
  54.  
  55.     where N1 is an integer, the builtin number.
  56.     
  57. *    Create a Prolog source file "newbuiltin.P" (notice correspondence
  58.     with the name of the predicate being defined) containing the
  59.     definition
  60.  
  61.         newbuiltin(A,B,C,D) :- '_$builtin'(N1).
  62.  
  63. *    Compile this Prolog predicate, using the simulator and the compile
  64.     predicate. This can be done by executing:
  65.  
  66.         % procomp newbuiltin
  67.  
  68.     in the directory lib/src. This will compile the file "newbuiltin.P" 
  69.     and install the byte-code in the file "newbuiltin" in the library 
  70.     directory.
  71.  
  72.