
The IF/Prolog system from Siemens AG Austria is an implementation of the ISO Prolog standard (ISO = International Standardization Organization). This standard was prepared by ISO Working Group 17, comprising representatives from various national standardization bodies.
IF/Prolog also contains interfaces and predicates which extend the language and ensure compatibility with earlier versions of the product.
The Standard dictates us to supply a strictly conforming mode, where the Prolog system only accepts and supplies conforming language predciates. To invoke this mode, see the section on invoking IF/Prolog in the User's Guide.
We continue, of course, to offer source compatibility for all relevant industrial platforms including Unix and PC operating systems. We continue our engagement in ISO and the Prolog Management Group as an excellent, international forum for Prolog vendors and industrial users.
IF/Prolog is a valuable state-of-the-art development tool and offers at the same time maximal compatibility to the existing product lines. We shouldn't forget to mention that our development team is continuing to implement new ideas in Prolog-based tools to increase productivity of software engineering.
Since we do not claim to be perfect, you should contact us should you encounter any problems; your critique and suggestions are most welcome.
We wish you every success and pleasure with IF/Prolog.
IF Computer
Siemens AG Austria
IF/Prolog V5.2 is the successor of IF/Prolog V5.1A and V5.1B. For the customers of V5.X, we reproduce the release notes here.
This section describes the changes in IF/Prolog V5.1 A large part of these changes origuins in the strict ISO Standard compliance of IF/Prolog V5.1 For a more complete description, please refer to the corresponding Reference Manual.
The following list describes the major changes and new features in IF/Prolog V5.1. For a more complete description, please refer to the individual manual pages.
The unix_ prefix signifies that a predicate is only available on the UNIX OS. Likewise there exists a windows_ prefix to signify that a predicate is only available on PC platforms (diverse brands of Windows and OS/2).
For predicates that are available on all platforms the prefix unix_ has been dropped. All OS related predicates have their home in a module 'os' that is reexported by 'system'. For cross-platform development it may be advisable to use the home module explicitely in OS related predicate names.
The old predicate names have been kept for backward compatibility but may be withdrawn in coming releases.
Old name New name Home Module\
unix_chdir/2 chdir/2 os
unix_exec/1 exec/1 os
unix_exec/2 exec/2 os
unix_getcwd/1 getcwd/1 os
unix_fork/2 unix_fork/2 os
unix_getpid/1 unix_getpid/1 os
unix_kill/2 unix_kill/2 os
unix_make_pipe/1 unix_make_pipe/1 os
unix_wait/1 unix_wait/1 os
unix_wait/2 unix_wait/2 os
windows_chdrive/1 os
windows_getdrive/1 os
unix_copy/2 stream_copy/2 system
Profiling Prolog programs is supported with new predicates.
The following commands are new:
The following predicates have changed:
The following predicates are new:
The following predicates have changed:
The support of the backwards-compatibility interface to Motif 1.1 using Motif 1.2 system files (mot12bc) has been be dropped.
The support of the interface to Motif 1.1 will be continued, but the interface will be provided only if Motif 1.2 is not available.
The following predicates are new:
The following predicates have changed:
There are several GUI improvements:
Runtime system and Development system have separate GUIs. Runtime GUI is used to link it with custom applications. It has no development GUI features such as enhanced options, Graphical Debugger or IF/Prolog Browser. Runtime GUI can be used also with development license.
Custom applications can be linked with new GUIs. The table shows the correspondence between the GUI type and linked files. See also Visual C++ demos for more information.
| Files | Runtime GUI | Development GUI |
| Resource DLL for Release configuration | GUIres.dll | GUIres.dll |
| Resource DLL for Debug configuration | GUIresd.dll | GUIresd.dll |
| User Interface static library for Release configuration | rtmGUI.lib | devGUI.lib |
| User Interface static library for Debug configuration | rtmGUId.lib | devGUId.lib |
| Main object file for Release configuration | rtmGUImain.obj | devGUImain.obj |
| Main object file for Debug configuration | rtmGUImaind.obj | devGUImaind.obj |
There are several demos that include Visual C++ project files:
Standard\WinApp Standard\WinPred Standard\EventDemo Standard\Queens
Included is a tool that sets Visual C++ settings to include IF/Prolog C directory in library and include directories for the current user. It is the addvcdirs.exe file and it is located in $PROROOT$ directory. It is run during the installation. To update Visual C++ settings for a different user it must be called after the user logs in.
Users can define this function similarly to Cboot() function to process custom procedures at the end of the EndProlog() function. You can learn more on using Cshutdown() in the Event Demo.void Cshutdown(void)
| Module | IF/Prolog Module | Description |
| module | system.nt.events | (Event Interface) |
| module | com | (Component Object Model Interface) |
| Engine Component | separate file | IF/Prolog as COM Component |
| Parameter | Description |
| -wshow | Causes the main IF/Prolog is showed (e.g. when it was minimalised) on every write operation into this window. The default behavior is that the IF/Prolog main window is showed when waiting for the keyboard input. |
| -wmin | Minimizes main window on start-up. |
| -nobanner | Prevents from showing banner window on start-up. |
This new module allows handling and raising events in IF/Prolog application to create interactive user interfaces.
| Demo | Description |
| EventDemo | IF/Prolog application with menu and toolbar |
| COM Interface | This new module allows interaction between IF/Prolog applications and various COM components. |
| Demo | Description |
| ADO Sample | IF/Prolog application uses ADO to connect to a database |
| Excel Sample | IF/Prolog application creates Excel table and Excel chart |
| Internet Explorer | IF/Prolog application creates WWW page and loads into the Internet Explorer |
Engine Component is the IF/Prolog application encapsulated as a COM component. You can use its methods (similar to C interface functions) to embed IF/Prolog into Visual Basic, Excel, Access and all other tools that supports COM.
Methods of the Engine Component:
InitProlog ParseProlog PrologFetch EndProlog PrologIsString PrologIsInteger PrologIsFloat PrologIsComObject PrologString PrologInteger PrologFloat PrologComObject Print
| Demo | Description |
| Shoes Sample | Excel table contains parameters of the factory model, optimized production plan is calculated by Engine Component running constraint application. |
The license for your IF/Prolog Development System includes a license for the IF/Prolog Runtime System. Thus you can also run IF/Prolog applications.
In case you yourself develop IF/Prolog applications and plan to sell them to third parties, those applications require a Runtime License in order to run your applications.
There are two possibilities for third parties to obtain runtime licenses.
Please also consult your IF/Prolog User's Guide on how to produce IF/Prolog applications. In any case, if you plan to produce an IF/Prolog application on a larger scale you should get in touch with your IF/Prolog vendor to agree about the most effective way for you to proceed.
If you have a problem with IF/Prolog or if you suspect an error in IF/Prolog please send us a fax or report to us by electronic mail. There is a Problem Report form at the end of this document. In order that we can reproduce the error we need to know: