comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Dynamic functions
Date: Fri, 10 Aug 2007 09:51:31 +0200
Date: 2007-08-10T09:47:21+02:00	[thread overview]
Message-ID: <6sdjo0lxt0xs.1ep1p45e58zk2$.dlg@40tude.net> (raw)
In-Reply-To: ygemywz3mm6.fsf@hugsarin.dmusyd.edu

On Fri, 10 Aug 2007 08:54:57 +0200, in comp.lang.ada you wrote:

> Poul-Erik Andreasen wrote:
> 
>> How is the best way to make a representation of a function/algorithm
>> wich can bee setup at runtime in Ada.
> 
> Is there any reason that you cannot convert the function to Ada, write
> it to a file, compile it to a plug-in/DLL/shared library, and then
> load the plug-in/DLL/shared library?

Yup, this is how MatLab and many other similar languages do, if you really
need to *program* (as opposed to draw (:-))  something...
 
> The complication is that it requires an Ada compiler on the running
> system, but the benefit is pretty fast execution.

?

Execution includes elaboration of the code. In your case elaboration would
mean to call the compiler, to link the DLL, to load the DLL. How frequent
the given function F will be called per run? If you are not going to design
some image rendering/processing system with millions of calls per function,
it probably will not pay off.

Other potential issues:

1. You will need a lot of free system resources to be able to run the
compiler/linker in parallel to your program, free memory and disk space.

2. The response time (from request to execute F to its start) will be
awful.

3. You will need to manage files (lots of) and other environmental stuff.
Deployment, integration etc might turn difficult.

4. DLL interface does not know Ada. Exporting complex data types and
objects of from a dynamically loaded DLL could be difficult.

5. DLL handling stuff is non-portable.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2007-08-10  7:51 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-09 16:06 Dynamic functions Poul-Erik Andreasen
2007-08-09 16:51 ` Georg Bauhaus
2007-08-09 18:20   ` Poul-Erik Andreasen
2007-08-09 17:58 ` Dmitry A. Kazakov
2007-08-09 18:17   ` Poul-Erik Andreasen
2007-08-10  7:28     ` Dmitry A. Kazakov
2007-08-10  6:54 ` Jacob Sparre Andersen
2007-08-10  7:51   ` Dmitry A. Kazakov [this message]
2007-08-10 14:59     ` Poul-Erik Andreasen
2007-08-10 18:56       ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox