Move to
Next Prev
Up Top
See also
IF/Prolog V5.x Overview
IF/Prolog V5.x for UNIX
IF/Prolog V5.x for Windows
IF Computer > IF/Prolog > Specifications > IF/Prolog V5.x Overview

IF/Prolog V5.x Overview

MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

Roll Cutting System using IF/Prolog

Declarative Language: Prolog

Prolog is a high-productivity "declarative" programming language. Compared with "imperative" programming languages like Pascal and C, where programmers usually implement procedures with machine oriented concepts, Prolog programmers work less with implementation level concepts. Prolog programmers typically concentrate on the description of their application, using notions of the conceptual level of the target domain.

For example, Prolog does memory management automatically, freeing the programmer from this error-prone task. Instead of low-level pointers, in Prolog you always work with expressive names. Search, pattern matching, and generation of alternative solutions are built into Prolog and provide basic but powerful problem solving mechanisms. IF/Prolog does even more: Efficient data structures like binary trees and hash tables are generated automatically. Thus, IF/Prolog preserves the easy -to-understand and productive linear view to the programmer while achieving high execution performance and scalability.

As a result, Prolog programs follow more closely the problem solving process of the domain specialist. Your programs become more concise, easier to maintain, and have shorter idea-to-market cycles.

The outstanding ease-of-use of Prolog allows to get partial solutions up and running on the computer in a short time frame. Prolog encourages what is called "incremental prototyping" where code is gradually fleshed out in a clean top-down manner over a period of time. Rather than throwing away a prototype and re-writing the final program from scratch, incremental prototyping saves development time and allows continuous user feedback, an indispensable quality for innovative applications.

In short, Prolog is a programming language of choice that gives you the flexibility and precision of a full fledged programming language, while shielding you from low level machine concepts and mundane coding and optimization tasks. IF/Prolog combines outstanding programmer productivity with excellent execution performance.

IF/Prolog for Industrial Applications

IF/Prolog is an advanced Prolog engineered for use in industrial and commercial environments. You find IF/Prolog in everyday use in many real-world applications worldwide, in expert systems and 'traditional' applications. Companies are using IF/Prolog for its advanced problem solving cababilities as well as simply for its programmer convenience and productivity as a general purpose language.

For example IF Computer Japan, under contract with TODA Construction Co. Ltd., developed a centralized process control system for below sea-level tunnelling in Tokyo. This system identifies problems of the on-going drilling and potential dangers and calculates reaction options in real-time.

In Germany, the Postal, Telegraph and Telephone Department contracted InterFace Computer GmbH to develop a knowledge-based system for configu- ration and sales support of telephones in the nation wide PTT outlets. this system enables customers to evaluate, among many combinations and optional functions, a selection which best suits the customer.

Some other examples of IF/Prolog based systems:

Railway Station Dynamic Scheduling
Oil Exploration Process Monitoring
Turbine Vibration Diagnosis
Cold Forging
Construction Robot Path Planning
Airport Environment Control
Polymer Design
Spectacle Design
ASIC Design Verification
Solid Modelling CAD Data Conversion
COBOL Program Maintenance
Software Customer Support
Life Insurance Risk Analysis
Stock Trading

Wide Spectrum of Supported Platforms

IF/Prolog is available for PCs, workstations, supercomputers, and some special purpose systems. IF Computer regularly supports new machines before they become available to the general public.

IF/Prolog allows you to select the best possible machine for your application purpose, and to move to a better platform as soon as it becomes available in the market. If you have to plan with an extended product life cycle with several different execution environments, the savings in porting cost alone may justify the selection of IF/Prolog, since compatibility is already built into IF/Prolog.

Processors:  Alpha, HPPA, MIPS, 80x86, Pentium, 
               Power, SPARC, 68K, 88K, others 
Operating Systems: 
              all major UNIX, Windows

Compliance with Standards

IF/Prolog V5.0 complies fully with the ISO Prolog Standard, Part1. Both Siemens AG and IF Computer are active in the DIN, JIS and ISO standardization process.

IF/Prolog is implemented in a highly portable subset of C. Quality control complies with ISO 9000.

SNI and IF Computer work together with other leading Prolog vendors in the Prolog Management Group (PMG).

Constraint Technology Package(Option)

The Constraint Technology Package introduces an industrial grade ``constraint based reasoning'' problem solver into IF/Prolog. This allows IF/Prolog applications to address difficult combinatorial problems like resource allocation, such as dynamic vehicle scheduling for airlines or railways, production planning and crew rostering.

The combination of Prolog and Constraint Technology allows to address more complex operations research problems which are difficult for a pure Prolog problem solver. As constraint handling limits the search space, the search for the solution becomes much more efficient. On the other hand, constraint programming benefits from programming in Prolog with all its well understood advantages over less well- established special purpose languages.

The IF/Prolog Constraint Technology Package handles big integers and rationals, coroutines, numeric constraints, finite domains and boolean constraints.

For details, please see "IF/Prolog V5.0 Constraint Technology Package".

High Level Interface to GUI Tools (Option)

IF/Prolog for UNIX provides interfaces to GUI develop- ment tools

First, using this interface, you can do your development work itself in a friendly window based environment, complete with on line help, extensive programming aids, and visual control.

Second, you can write the graphical user interface for your application directly in Prolog. The comfort and benefit of Prologs incremental development, automatic memory management, names instead of pointers comes fully to bear when you work with the fairly complex dynamic data structures of sophisticated user interfaces.

Graphical development in Prolog is considerably easier than in C or C++; windowing events can be synchronized by using the interactive windows -based debugger. Furthermore, the GUI code need not be relinked, saving a considerable amount of time for each test cycle, as source files may be simply reconsulted.

IF/Prolog offers optionally:

Interface to OSF/Motif

Direct Access to Databases

For the purpose of more extensive development, many commercial standard database systems can be directly accessed from IF/Prolog in conjunction with the following database interface options:

for UNIX: SQL Relational Database (Oracle, Informix, Ingres, etc) for Windows : MS Access, etc through DDEML interface, COM interface or ADO

Interfaces to SQL Relational Database are provided as options. Interfaces to DDEML, COM and ADO are included in the Windows versions.

Java Interfaces (only for version 5.3)

Analogous to the C interfaces, a flexible bi--directional interface to Java enables IF/Prolog programs to be embedded as a software component for modern application development. IF/Prolog may either be called via a Java Class or may include Java implemented predicates. (At present version 5.3 with Java Interface is available only for Windows version.)

Flexible C Language Interfaces

A flexible bi--directional interface to C and C++ enables IF/Prolog programs to be embedded as a software component that either initiates C procedures or enables Prolog to act as an intelligent server. C++ class definitions can not be handled. There are several notable features which make IF/Prolog stand out when it comes to serious appli- cation development:

  • Full interaction with the operating system the operating system (OS) is easily accessible from both C and Prolog. Prolog may then be used to control command parameters, pipes, files and other OS-- or user-- defined stream types.
  • A two level C-> Prolog interface enables the programmer to either pass Prolog goals as C--strings which are then parsed, or to efficiently build up, in the systems internal representation, structures using a pre--defined set of macros.
  • Prolog ->C interface allows deterministic or resatisfiable predicates to be defined as C routines. These predicates can be as efficient as IF/Prologs own built--in predicates.
  • C and Prolog together: Prolog and C code may be freely inter--mixed and used both recursively and in generate--test combinations.
  • C predicates in modules: C routines may be assigned to modules which can then be incorporated as freely into large applications as modules written in Prolog.
  • No limits: There are no size restrictions placed on data which can be exchanged between C and Prolog as garbage collection and memory expansion may take place transparently, even during the execution of C routines.

Socket Support

Internet Sockets - IF/Prolog can be embedded into applications which interact with the internet. Internet socket support allows the programmer to develop intelligent services for the internet market.

Client Server Applications - The comprehensive socket support also enables the easier development of more traditional client-server applications. Builtin predicates support the polling of multiple streams, which may be overlayed across socket connections enabling transactions and requests to be passed efficiently between client and server.

Easy-to-use IF/Prolog Engine

The IF/Prolog kernel is a state--of--the--art Prolog engine that

  • Incremental Optimizing Compiler -- the compiler allows incremental compilation, decompilation and loading of compiled code while implementing full argument indexing and shallow backtracking for all predicates. Further source--to--source and low level optimizations are applied to compiled non--modifiable static predicates.
  • Compiler/Interpreter -- as the IF/Prolog Compiler compiles in units of files, it is as easy to use as an interpreter. Compile time for the preparation of final programs is remarkably short.
  • Efficient and Flexible Memory Management -- all data areas are fully garbage collected and re--sized transparent to the user application. This is on an individual and combined basis that maximizes the applications--time of the execution, as is an essential requirement for real time systems.
  • As of version 5.0, garbage collection also operates during the execution of C--defined, user predicates, removing many of the size limitations on atoms and structures.
  • Predicate Based Module Concept -- new for version 5.0 the module concept has been redesigned to support data hiding and meta--programming in a modular way. Foreign language predicates may also be incorporated into specific modules and imported / exported.

Full Asian Language Support

IF/Prolog programs and data can process and consist of any combination of single byte and multi byte characters.

Thus, programs, knowledge bases and data can be written in Asian languages such as Japanese, Korean and Chinese.

Edinburgh syntax

The strict ISO standard syntax requirement can be relaxed in favor of the Edinburgh syntax, to incorporate existing application code and public domain Prolog libraries.

Other Features

  • Friendly Debugger -- The IF/Prolog Debugger permits programmers to follow the exact step-by-step execution of the program at variable levels of depth. Breakpoints can also be placed at arbitary points in the code.
  • Application Profiling -- The new profiler determines how much time is spent in each predicate during your programs execution. The profiler can be used to profile both entire applications and individual goals.
  • Signal handling - IF/Prolog can react to operate upon signals from the operating system and fully interact as a system process.

Customer oriented licencing

  • Single CPU Licence -- IF/Prolog is licensed to a single computer, without user limitation.
  • Runtime Licence -- Program components programmed in IF/Prolog can be "canned" into applications. The customer and/or user of the application may not need to know that IF/Prolog is used inside. IF/Prolog contains the tools to create stand-alone applications, and a low-cost runtime licensing scheme is available to software developpers for in-house deployment and resale.

User Support

IF/Prolog comes complete with software media, English or Japanese documentation and 6 month free maintenance. Maintenance includes telephone/facsimile/e-mail hotline support as well as (upon request) updates at a new release of IF/Prolog or of the operating system. A maintenance contract extends the maintenance period (Not available for IF/Prolog for Windows NT).

Educational and volume discounts are available.

Individualized Training and Consulting Services

IF Computer provides courses on knowledge engineering and Prolog programming from elementary to advanced levels, including a lot of practical programming examples. Courses and workshops tailored to customers' needs are also provided: IF/Tutorial.

IF Computer designs and realizes expert systems and other advanced custom made software solutions in cooperation with client companies: IF/Projects.

Developed by Siemens

IF/Prolog is developed by Siemens AG, a multinational company of Germany. IF Computer operates distribution and support centers in Germany, Japan, U.S.A. and Hong Kong.

read on...
IF/Prolog by Siemens
Language
English
Japanese
German
Server
USA
Japan
Site Access
Local Index
Local Contents
Site Contents
Site Index
Printer Friendly
For imode
For PDA
Search
document: http://www.ifcomputer.co.jp/IFProlog/Specifications/Overview/home_en.html
published 2008/5/12 update 2001/6/26 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 info@ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
scroll to top managed with ubiCMS