Logtalk v.2.43.3

Advertisement
Advertisement

Logtalk is an object-oriented logic programming language that can use most Prolog implementations as a back-end compiler. As a multi-paradigm language, it includes support for both prototypes and classes, protocols (interfaces), component-based programming through category-based composition, event-driven programming, and high-level multi-threading programming.

Logtalk is a mature open source object-oriented logic programming language that can use most Prolog implementations as a back-end compiler. Logtalk main features are:

Separation between interface and implementation
Predicate directives (declarations) can be contained inside protocols (interfaces), which can be implemented by any object.

Parametric objects
Object identifiers can be compound terms containing free variables that can be used to parametrize object predicates. This allows us to interpret predicate clauses as providing instantiations of a parametric object identifier. I.e. through parametric object we can associate any number of methods with a compound term.

Support for both class-based and prototype-based systems
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.

Support for multiple object hierarchies
No need to be constrained to a single, lengthy hierarchy rooted in some generic object.

Private, protected, and public inheritance
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.

Private, protected, and public object predicates
Set the scope of your object predicates to match your protocol design and let the runtime system enforce your choices.

Static and dynamic objects
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.

Static and dynamic object predicates
Any static object may contain both static and dynamic predicates.

Logtalk syntax extends standard Prolog syntax
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).

Event-driven programming
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 and can be used to implement the concepts of pointcut and advice found on Aspect-Oriented Programming.

Component-based programming
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. Categories may also extend existing objects. Categories can be used to implement aspects and mixin-like behavior without resorting to inheritance.

Logtalk is an object-oriented logic ...

logic programming, programming language, prolog implementation, programming, logic, compiler

 
  • Logtalk
  • 2.43.3
  • 01 Aug 12
  • Paulo Moura
  • Windows2000, Windows2003, WinXP, Windows Vista, Windows 7
  • Freeware
  • 1.1 Mb
  • 156
  • Free
 
 

Review Logtalk

  • captcha
 
 
New Miscellaneous software
  • InstallAware Free Installer  v.X6InstallAware's new Free Installer runs inside Visual Studio and creates setups automatically, by scanning your loaded solutions for dependencies and output files, and including them in your setup. This special edition of InstallAware is freeware!
  • SocialMedia driven App Developer  v.2.64If you could look 1 year ahead, would you want to see? The SocialMedia driven App Developer is calculating your Shareware's Success. Fine-tune as many cost-driving parameters as you want. See revenue and net profit results displayed over 48 months.
  • Metamill  v.8.1.1921Metamill is a professional UML modeling tool. Supports UML 2.4 standard. All 14 UML diagrams supported. Round-trip engineering for Python, ADA, Java, C, C++, C# and VB.Net. RTF and HTML document generation.
  • Help+Manual  v.7.3.2Help+Manual is a stand-alone authoring tool with an integrated WYSIWYG editor. Working with Help+Manual is as easy as writing text with a word processor. Try yourself and download Help+Manual! Writing help has never been easier.
  • Metamill  v.8.1.1921Metamill is a professional UML modeling tool. Supports UML 2.4 standard. All 14 UML diagrams supported. Round-trip engineering for Python, ADA, Java, C, C++, C# and VB.Net. RTF and HTML document generation.
  • Kompas 3d LT  v.7System KOMPAS-3D is intended for creation of three-dimensional associative models of separate details and the assembly units containing both original, and standardised constructive units. Kompas-3D allows to realise classical process of ...