What is New in Visual Prolog 7.1

Visual Prolog 7.1 (Build 7100) is a further development of Visual Prolog 7 family.

The goals of the language update are to provide better means for creating and maintaining more complex programs for more complex surroundings.

Visual Prolog 7.1 introduces several language extensions including properties, try-catch-finally syntax, elseif in the if-then-else statement.

The new release improves Visual Prolog stability and includes a lot of bug fixes.

Visual Prolog 7.1 also incorporates all changes included into the minor releases of Visual Prolog 7.0 (Builds 7002, 7003, 7004).

New Features in Visual Prolog 7.1

Language   

  • properties
    Classes and interfaces can have properties.  Properties are syntactically used like fact variables.  They can be implemented either by a fact or by set/get predicates:
    class myClass
    properties
         name : string.
    end class myClass
    
    ..., myClass::name := "Hans", ...
    
  • elseif has been added to the if-then-else statement:
    if C1 then
        A1
    elseif C2 then
        A2
    else
        A3
    end if
    
  • try-catch-finally syntax has replaced trap/3 and finally/2:
    try
        A
    catch TraceId do
        H
    finally
        B
    end try
    
  • Built-in predicate tryToTerm/1-> has been added.
  • [in] and [out] flow attribute can be used instead of flow-pattern:
    predicates
        getName : (string Name [out]).
  • [formatString] attribute indicates an argument that will be used for formatting ellipsis arguments (the compiler will check the format string against the arguments if both are available at compile time):
    predicates
        getFormatted : (string Result [out], string FormatString [formatString], ...).
  • [deprecated(<string_literal>)] attribute might be used to signal entities that are deprecated:
    predicates
        obsoletePred : (string X) [deprecated("Use predicate xxx/1 instead")].
  • and and or can be now used in conditional compilation expressions
        #if c::x > 1 and c::y > 5 #then ... #endif	
  • Parameter names are allowed for type application arguments.
     domains
          person = tuple{string Name, integer Age}.
    
  • Built-in predicate compare and domain compareResult have been added:
    predicates
        compare : (AA) -> compareResult Result.
    domains
        compareResult = less(); equal(); greater().
  • predicates from sections can be written among the usual sections (like clauses sections, etc.).
  • resolve sections can be written among usual sections (like clauses sections, etc.).

Compiler

  • The compiler performs a stronger type analysis. A compiler option /WEAKTypecheck: {on | OFF} has been introduced to provide compatibility with the previous compiler version. It is switched OFF by the default.
  • The compiler finds much more unreachable code.

Runtime

  • Erroneous facts are set to erroneous by the built-in predicate retractFactDB/1
  • Exception handling changed to give better information and simplify DLL handling

PFC

  • In class binary: added predicates for dealing with atomic binaries
  • New interface codepage defining core page constants
  • Class core: added value extraction predicates
  • New collection\algebraic class: queue
  • Class directory: New predicate getTemporaryDirectory
  • Package exception: The exception dumps are made more informative, and the handling for DLL's and multithreaded programs have been simplified
  • Class list: many new predicates added
  • Class math: added predicates for converting strings to numbers
  • Package odbc: added string8 fields handling and better handling of large fields using "late" retrieval/put
  • Class regExp: (simple to use) predicate replace added
  • class sendMail_smtp: new predicate addAttachment
  • Class std: added function versions of number iterator  predicates
  • Class time: new predicate setSystemClock
  • Interface time and timeFormatter: new predicate setTimeZone

PFC\GUI

  • New gui package imageList. An abstract of Microsoft ImageList concept that is being used in many Common Controls. The imageList supports project resources, files (of any kind supported by Windows) and GDI+ bitmaps.  Images are automatically resized to imageList dimensions. ImageLists can be saved and loaded from files.
  • The ListView control has been updated to use imageLists with increased performance and stability as result.
  • SplitTwoControl: New mainPane property
  • tabControl: New tabsLocation property

IDE

  • Beginning with Visual Prolog 7.1, the Code Expert is used only for the Task window in GUI-strategy applications.
    Assigning events to other box-resources (dialogs, forms) is done in  the Events Tab sheet of the Properties dialog.

  • When creating a new project, the top - level project files and classes are now named "main" instead of <projectName>.

  • A new Errors window design has been implemented.
  • Locks have been added to the Project tree to indicate read-only files.
  • Ability to zoom using the mouse wheel (Ctrl+mousewheel up to increase zoom and Ctrl+mousewheel down to reduce zoom) has been added.
  • An ability for easy switching between “related” files (in normal case xxxx.pro, xxxx.cl and xxxx.i) has been added.
  • A window tab-navigation popup dialog has been implemented, that assist navigation among many open windows.
  • The designer canvas has been improved in the way that all four tool windows are shown (brought to the top of Z-order) whenever one is activated.
  • A new menu item Window | Lock All Editor Windows Together has been added.
    When editor windows are locked together, they will move and resize in the same way and always stay on the top of each other giving the impression that it is actually only one window with a number of docked editors inside.
  • COM import has now two trees to select the components and interface.
  • Restore file associations menu item has been added.

Others

  • An improved version of Help Generation Tool (ProDoc) has been first included into a minor release of Visual Prolog 7.0 as an update.
    Now it became a part of Visual Prolog 7.1 Commercial Edition.
    The new version supports Unicode and new Visual Prolog 7 syntax features.

    Note that ProDoc requires Microsoft .NET Framework 2.0 to be installed at your computer.

See Also

Bugs Fixed in Visual Prolog 7.1

Visual Prolog 7.1 Upgrade Notes

Service releases of Visual Prolog 7.1

Visual Prolog 7.1, Build 7101

Visual Prolog 7.1, Build 7103

 

Home | Company | News | Products Downloads | Shop | Support | Visual Prolog Features | Visual Prolog Compiler | FAQ | Tutorials | Examples | How to Migrate from Visual Prolog 5 to Visual Prolog 7 | Knowledge Base | Discussion Forum | wiki | Site Map
 

Prolog Development Center A/S - H.J. Holst Vej 3-5C - 2605 Broendby, Denmark - Tel +45 3636 0000 - Fax +45 3636 0001 - sales@visual-prolog.com