Difference between revisions of "Development/Languages/Smoke"

Jump to: navigation, search
(adding smoke programming language information)
 
(please use wikisyntax)
Line 1: Line 1:
<p><font size="+2">S</font>MOKE is a introspective wrapper around the Qt and KDE frameworks.</p>
+
'''SMOKE''' is a introspective wrapper around the Qt and KDE frameworks.
<p>The legend says it stands for <b>S</b>cripting <b>M</b>eta <b>O</b>bject <b>K</b>ompiler <b>E</b>ngine</p>
+
The legend says it stands for '''S'''cripting '''M'''eta '''O'''bject '''K'''ompiler '''E'''ngine
<p> Not only does it provide wrappers for every function in every class,
+
 
 +
Not only does it provide wrappers for every function in every class,
 
but it also contains meta-information allowing queries of what
 
but it also contains meta-information allowing queries of what
functions are available and their arguments and return-types.</p>
+
functions are available and their arguments and return-types.
<p> All classes, all methods, with all arguments, along with various flags
+
 
 +
All classes, all methods, with all arguments, along with various flags
 
reflecting staticness, virtuality, etc. are stored into
 
reflecting staticness, virtuality, etc. are stored into
 
cross-referencing arrays for fast lookups. One can thus read (and call) the whole
 
cross-referencing arrays for fast lookups. One can thus read (and call) the whole
Qt API by simply reading/searching these arrays.</p>
+
Qt API by simply reading/searching these arrays.
  
<p>The main purpose of SMOKE is to make it possible to write bindings from
+
The main purpose of SMOKE is to make it possible to write bindings from
scripting languages to Qt and KDE - with an emphasis on ease of use and flexibility.</p>
+
scripting languages to Qt and KDE - with an emphasis on ease of use and flexibility.
  
<p>You can find out more about SMOKE by checking out the  
+
You can find out more about SMOKE by checking out the  
[http://websvn.kde.org/trunk/KDE/kdebindings/ kdebindings module] of KDE's SVN.</p>
+
[http://websvn.kde.org/trunk/KDE/kdebindings/ kdebindings module] of KDE's SVN.
  
<p>At the time of writing, both the [http://developer.kde.org/language-bindings/perl/index.html Perl bindings] and [http://developer.kde.org/language-bindings/ruby/index.html Ruby bindings] are known to use it, you might find valuable usage information there.</p>
+
At the time of writing, both the [http://developer.kde.org/language-bindings/perl/index.html Perl bindings] and [http://developer.kde.org/language-bindings/ruby/index.html Ruby bindings] are known to use it, you might find valuable usage information there.

Revision as of 17:59, 29 December 2006

SMOKE is a introspective wrapper around the Qt and KDE frameworks. The legend says it stands for Scripting Meta Object Kompiler Engine

Not only does it provide wrappers for every function in every class, but it also contains meta-information allowing queries of what functions are available and their arguments and return-types.

All classes, all methods, with all arguments, along with various flags reflecting staticness, virtuality, etc. are stored into cross-referencing arrays for fast lookups. One can thus read (and call) the whole Qt API by simply reading/searching these arrays.

The main purpose of SMOKE is to make it possible to write bindings from scripting languages to Qt and KDE - with an emphasis on ease of use and flexibility.

You can find out more about SMOKE by checking out the kdebindings module of KDE's SVN.

At the time of writing, both the Perl bindings and Ruby bindings are known to use it, you might find valuable usage information there.


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal