Almost forgot, there is also this, but some of the design decisions lead me
to believe it aims to solve some of the perceived shortcomings of APL (IO
set to 0 for example), than maybe a faithful implementation, but still an
interesting project worth taking a look at.

https://gitlab.com/n9n/apl

(also a shout out to the creator if theyre on here)

I think I also saw a wasm target for gnu-apl somewhere (I believe from Dr.
Sauermann), but my brain is starting to shut off for the day...

On Thu, Jun 27, 2019 at 3:25 PM Rowan Cannaday <cannad...@gmail.com> wrote:

> @Alexey
>
> I actually floated this idea to the creator of "April" (an APL subset that
> compiles to common lisp). I'll link the ticket below, but his response was
> as follows:
>
> "JS is not a very good language for implementing APL because it has no
> true multidimensional arrays; only nested vectors. There's also no support
> for array displacement, no native complex numbers and some other
> mathematical deficiencies. You could use special classes to fill some of
> the gaps, write something that behaves like a multidimensional array, etc.,
> but performance will suffer."
>
> He might even be on this mailing list, if so shout out to another
> interesting prj.
>
> https://github.com/phantomics/april/issues/4
>
>
>
> On Thu, Jun 27, 2019 at 3:13 PM Alexey Veretennikov <txm.four...@gmail.com>
> wrote:
>
>> Need JavaScript/Node.js bindigs then :)
>>
>> Dr. Jürgen Sauermann <m...@xn--jrgen-sauermann-zvb.de> writes:
>>
>> > sure. But I would bet that today the number of python users is at least
>> > two magnitudes greater
>> > than the number of Pascal users (not counting those who have ceased to
>> > exist since Pascal
>> > was invented).
>> >
>> >
>> > On 6/27/19 5:37 PM, enz...@gmx.com wrote:
>> >> a grand geocentric (aplcentric) point of view indeed - i'm pretty sure
>> the
>> >> number of pascal users is orders of magnitude greater then the number
>> of apl
>> >> programmers
>> >>
>> >> On Tue, 18 Jun 2019 22:10:20 +0200
>> >> Dr. Jürgen Sauermann <m...@xn--jrgen-sauermann-zvb.de> wrote:
>> >>
>> >>> Hi,
>> >>>
>> >>> I believe that extending some language X with an interface to APL
>> makes only
>> >>> sense if:
>> >>>
>> >>> 1. language X is popular or at least is gaining popularity, and
>> >>> 2. (GNU-) APL can provide an advantage in an area where language X is
>> weak.
>> >>>
>> >>> According to
>> http://statisticstimes.com/tech/top-computer-languages.php
>> >>> and others, C/C++ and python are the most frequently used languages
>> >>> today, with Erlang and Pascal having a far lower popularity (although
>> >>> probably increasing for Erlang but decreasing for Pascal).
>> >>>
>> >>> Erlang and Python are both weak for large vectors and even weaker for
>> >>> arrays with higher ranks. Reason is the linked list structure that
>> they use
>> >>> for vectors.
>> >>>
>> >>> Now to Pascal: it is not popular and is not weak in a particular area
>> (being
>> >>> weak in total does not count here). A further difficulty is the need
>> to
>> >>> declare
>> >>> the data types of variables beforehand, which does not fit well to the
>> >>> dynamic
>> >>> typing of APL. Python and Erlang are both dynamically type and
>> therefore
>> >>> this problem does not exist for them.
>> >>>
>> >>> For that reason you are on your own when it comes to extending Pascal
>> with
>> >>> GNU APL. I will be glad to help you with technical advice how to do
>> that and
>> >>> how GNU APL works internally, but I would prefer not be involved in
>> building
>> >>> such an interface.
>> >>>
>> >>> Best regards,
>> >>> Jürgen
>> >>>
>> >>>
>> >>>
>> >>> On 6/17/19 5:05 PM, enz...@gmx.com wrote:
>> >>>
>> >>> Hi  Jürgen,
>> >>>
>> >>> Regarding fpc it depends on how they have built their C/C++ interface
>> (if
>> >>> they did).
>> >>> The last time I used Pascal was the time when the only other
>> programming
>> >>> language on my platform was BASIC. So I am not really up-to-date with
>> Pascal.
>> >>> If you want to try it, then I can help with technical information
>> that you
>> >>> may need.
>> >>>
>> >>> this is the fpc/c/c++ interface guide that i have used for accessing
>> c libs
>> >>> from fpc
>> >>> using c++ in fpc is a lot more complicated - i have 'working
>> examples' from
>> >>> the following guide (hello++.pas) but that is it for c++.
>> >>> ftp://ftp.freepascal.org/pub/fpc/docs-pdf/CinFreePascal.pdf
>> >>>
>> >>> This is an example of the c interface (how i can use 'c/libc' from
>> fpc)
>> >>>
>> >>> this can be your first fpc program!!
>> >>>
>> >>> // sysconf.pas
>> >>> program sysconf; // see man 3 syscon
>> >>> uses ctypes;
>> >>> const _SC_NPROCESSORS_ONLN = 84; // _SC_NPROCESSORS_ONLN The number of
>> >>> processors currently online (available).
>> >>> function sysconf(i: cint): clong; cdecl; external 'c'; // libc
>> unistd.h
>> >>> begin
>> >>> writeln(sysconf(_SC_NPROCESSORS_ONLN), ' cpus :
>> _SC_NPROCESSORS_ONLN');
>> >>> writeln;
>> >>> end.
>> >>>
>> >>> to compile
>> >>> fpc -XX sysconf.pas # -XX use smart linking to get smallest
>> executable use
>> >>> -gl for generating debug info for gdb and use lineinfo unit
>> >>>
>> >>> ---
>> >>>
>> >>> The shell approach is fine as long as your programs process a small
>> to medium
>> >>> amount of data. When the volume of data becomes huge then you have a
>> lot of
>> >>> overhead (formatting on the shell side and tokenization and
>> optimization on
>> >>> the
>> >>> APL side) which can only be avoided by calling directly into the APL
>> >>> interpreter.
>> >>>
>> >>> so far i've had no problem using cli apl from fpc (there are actually
>> 2 ways
>> >>> depending on if i want to 'trap' and use any apl standard output
>> >>> (aprocess.execute) or not (sysutils.executeprocess)
>> >>>
>> >>> program fpcapl;
>> >>> uses sysutils;
>> >>> var l : ansistring;
>> >>> begin
>> >>> l := '-c "/usr/local/bin/apl --cfg"';
>> >>> //l := '-c "/apl/workspaces/script.apl"'; // script.apl file has #!
>> >>> /usr/local/bin/apl --script -- then apl code
>> >>> sysutils.executeprocess('/bin/bash', l); // apl standard output just
>> >>> displayed
>> >>> end.
>> >>>
>> >>>
>> >>>
>> >>>
>> >>
>> >
>> >
>>
>> --
>> Br,
>> /Alexey
>>
>>

Reply via email to