- مرات التنزيل: 210
- متطلبات التشغيل: Mac OS X 10.4 or later
- الحجم: 667 KB
- الاصدار : Logtalk
- اضيف في: 2009-10-04 00:00:00
- اخر تحديث: 10/04/2009
- الموقع علي الانترنت:
Logtalk is a mature Open Source object-oriented logic programming language that can use most Prolog implementations as a back-end compiler.
key features of "Logtalk":
· Predicate directives (declarations) may be contained inside protocols (interfaces), which may be implemented by any object.
· Object names can be compound terms containing free variables that can be used to parametrize object predicates. This allows us to treat any predicate as an instantiation of a parametric object. I.e. through parametric object we can associate any number of methods with a compound term.
· You may have, in the same application, class-based hierarchies (with instantiation and specialization relations) and prototype-based hierarchies (with extension relations). Moreover, fundamental language features such as protocols (interfaces) and categories (components) can be used simultaneously by classes, instances, and prototypes.
· No need to be constrained to a single, lengthy hierarchy rooted in some generic object.
· Logtalk supports private, protected, and public inheritance in a way similar to C . Moreover, any entity relation can be qualified using a scope keyword. E.g. an object can privately implement a protocol, thus making all protocol declared predicates private.
· Set the scope of your object predicates to match your protocol design and let the runtime system enforce your choices.
· Objects can be either static or dynamic. Static objects are defined in source files which are compiled and loaded in the same way as Prolog files. Dynamic object can be either defined in source files or created at runtime.
· Any static object may contain both static and dynamic predicates.
· Logtalk uses standard Prolog syntax with the addition of a few operators and directives for a smooth learning curve. Prolog code can be easily encapsulated inside objects with little or no changes. Moreover, Logtalk can transparently interpret most Prolog modules as Logtalk objects for easy reusing of existing code (e.g. libraries).
· Predicates can be implicitly called when a spied event occurs, allowing programming solutions which minimize object coupling. In addition, events provide support for behavioral reflection.
· Predicates can be encapsulated inside categories, which can be virtually imported by any object, without any code duplication and irrespective of object hierarchies. Thus, objects may be defined through composition of categories, which act as fine-grained units of code reuse.
· High level multi-threading programming is available when running Logtalk with selected back-end Prolog compilers, allowing objects to support both synchronous and asynchronous messages. Easily take advantage of modern multi-processor and multi-core computers without bothering with the details of creating and destroying threads, implement thread communication, or synchronizing threads.
· Logtalk supports multi-inheritance of both protocol and implementation. An object may implement several protocols and extend, specialize, or instantiate several objects. Multi-inheritance conflicts are solved implicitly by the Logtalk lookup algorithms or explicitly by using predicate directives.
· Logtalk code is compiled using the same technics that you use to write efficient Prolog code. In addition, Logtalk supports both static binding and dynamic binding (with method lookup caching), greatly improving performance. Benchmark results for some Prolog compilers are available here.
· Logtalk is designed for smooth integration with any Prolog compiler that conforms or closely follows the ISO Prolog Standard.
· Logtalk interfaces with a specific back-end Prolog compiler via a minimal configuration file making it compatible with almost any modern compiler.
· Logtalk automatically generates a documentation file in XML format for every compiled object, protocol, or category. The system includes all the necessary XSL(T) files and scripts to convert documenting files to (X)HTML and PDF.
What's New in This Release: [ read full changelog ]
· Added support for overriding Logtalk default compiler flags (specified in the back-end Prolog compiler config files) using new settings files.
· Logtalk will load a "settings.lgt" file in the startup directory. If this file is not found, Logtalk will load a "settings.lgt" file in the Logtalk user directory. Requires running Logtalk with a back-end Prolog compiler supporting access to environment variables. Loading of settings files from the Logtalk startup directory is only available when running on Windows for B-Prolog, Ciao, GNU Prolog, SWI-Prolog, XSB, and YAP. SICStus Prolog is incompatible with this new feature, requiring manual loading of settings files after startup. Consult the "configs/NOTES.txt" file for compatibility details for other Prolog compilers.
· Updated the "cplgtdirs.*" scripts to copy an existing "settings.lgt" file from the backup of the Logtalk user folder to the new Logtalk user folder.
· Updated the Logtalk compiler and runtime and all the config files to use the more standard call/N predicates instead of the call_with_args/N predicates.
· Improved the XML documentation automatically generated for objects and categories by appending to the compilation mode all the active optional features and the "threaded" and "synchronized" properties. Improved the XML documentation automatically generated for synchronized predicates by appending the "synchronized" property to the predicate compilation mode.
· Improved error handling for the built-in predicates logtalk_load/2, logtalk_compile/2, current_logtalk_flag/2, and set_logtalk_flag/2 when checking flag names and values.
· Improved Logtalk compiler error and warning reporting by printing, whenever possible, the range of lines where the problem was found instead of printing only the starting line.
· Added new object properties "complements", "context_switching_calls", "events", and "dynamic_declarations". Added new category property "events". These properties are defined whenever the corresponding compiler flags are set to "allow" at the time of entity compilation.
· Corrected a bug where some file-related entity properties would not be stored when using back-end Prolog compilers that don't support multifile predicates.
· Corrected a bug (introduced in version 2.35.0) in the compilation and processing of "super" calls for objects that both instantiate and specialize other objects.
· Corrected a bug (introduced in version 2.35.1) in the Logtalk compiler that prevented compilation of Prolog modules as objects.
· Corrected a bug in the implementation of the Logtalk built-in predicate threaded/1 that would result in wasting space in the main thread message queue with duplicated messages. Thanks to Rui Marques for the bug report.
· Corrected a bug where the Logtalk compiler would report the number of compilation warnings with the "report" compiler flag set to "off".
· Updated the Logtalk compiler in order to avoid unwanted backtracking during source file compilation and when calling the entity creation built-in predicates.
· The compiler flags "context_switching_calls", "startup_message", and "altdirs" are no longer read-only flags in order to support changing their default values from within "settings.lgt" files. The possible values for the compiler flags "dynamic_declarations", "complements", "context_switching_calls", and "events" are now "allow" and "deny".
· Added a new read-only compiler flag "prolog_version". Renamed the compiler flag "prolog" to "prolog_dialect".
· Changed object compilation in order to restrict the use of the