APL-sharp: Difference between revisions
Miraheze>Adám Brudzewsky (Removed redirect to APL) |
Miraheze>Adám Brudzewsky No edit summary |
||
Line 1: | Line 1: | ||
{{ | {{DISPLAYTITLE:APL#}} | ||
{{Infobox array language | |||
| array model = [[nested array model|nested]] | |||
| index origin = 0 | |||
| function styles = [[tradfn]]-[[dfn]] hybrid | |||
| numeric types = any [[.NET]] type | |||
| unicode support = full | |||
| released = 2010 | |||
| withdrawn = 2012 | |||
| latest version = 0.3.0.627 / October 2011 | |||
| developer = [[Dyalog Ltd.]] | |||
| license = Unavailable / Proprietary software | |||
| implementation languages = [[wikipedia:C_Sharp_(programming_language)|C#]] | |||
| platform = [https://en.wikipedia.org/wiki/Common_Language_Infrastructure CLI] | |||
| operating systems = Microsoft Windows, macOS, Symbian OS, Linux | |||
| influenced by = [[APL2]], [[J]], [[Dyalog APL]], [[wikipedia:C_Sharp_(programming_language)|C#]] | |||
}} | |||
'''APL#''' (pronounced ''APL Sharp'') was presented by [[Dyalog Ltd.]] at the 2010 [[APL conference]] in Berlin. The goal was to make the benefits of safe/managed computing available to users of APL through the development of an APL dialect targeting Microsoft Silverlight/Moonlight and featuring tight integration with Microsoft [[.NET]]. | |||
APL# was to be a new dialect of APL designed with object-oriented/language-agnostic platforms in mind, using Microsoft .NET as the initial target platform. Although portability of old APL code to APL# was an important consideration, the fact that complete upwards compatibility with "classic" APL was not achievable allowed an attempt to tidy up a few other aspects of APL. The goal was to produce a language which was as powerful a ''Tool of Thought'' as classic APL and [[APL2]], at the same time as feeling significantly more acceptable to a software engineer. | |||
However, taking full advantage of the shared type system and related services which forced the abandoning some of the most central dogma of "classic" APL interpreters: | |||
* The notion that APL only has two data types: numbers and characters | |||
* That arguments are always passed "by value" | |||
* User-defined names are global by default, and local variables are visible to all sub-functions | |||
APL# featured a single functional form (besides for [[train]]s) which was a hybrid between [[dfn]] and [[tradfn]] syntax, superficially resembling that of dfns, but allowing a header (calling signature) and [[control structures]]. | |||
In 2012 Microsoft deprecated Silverlight for HTML5 in Windows 8, and Dyalog subsequently abandoned the APL# project. | |||
== External links == | |||
=== 2010 APL conference === | |||
* [https://www.dyalog.com/uploads/conference/dyalog10/presentations/P01_KrombergScholesManktelow_APLSharp.pdf ''APL# - an APL for Microsoft.Net''] | |||
* [https://www.dyalog.com/uploads/conference/dyalog10/presentations/P02_KrombergScholesManktelow_UnifyingFns.pdf ''Unifying T-Fns and D-Fns in APL#''] | |||
=== 2011 Dyalog user meeting === | |||
* [https://www.dyalog.com/uploads/conference/dyalog11/presentations/D08_apl_sharp/AplSharpDescription.pdf ''APL# Language Description''] | |||
* [https://www.dyalog.com/uploads/conference/dyalog11/presentations/D08_apl_sharp/AplSharpCoreLanguage_Dyalog2011_Presentation.pdf APL# Core language] | |||
{{APL programming language}} | {{APL programming language}} |
Revision as of 23:53, 12 November 2019
APL# (pronounced APL Sharp) was presented by Dyalog Ltd. at the 2010 APL conference in Berlin. The goal was to make the benefits of safe/managed computing available to users of APL through the development of an APL dialect targeting Microsoft Silverlight/Moonlight and featuring tight integration with Microsoft .NET.
APL# was to be a new dialect of APL designed with object-oriented/language-agnostic platforms in mind, using Microsoft .NET as the initial target platform. Although portability of old APL code to APL# was an important consideration, the fact that complete upwards compatibility with "classic" APL was not achievable allowed an attempt to tidy up a few other aspects of APL. The goal was to produce a language which was as powerful a Tool of Thought as classic APL and APL2, at the same time as feeling significantly more acceptable to a software engineer.
However, taking full advantage of the shared type system and related services which forced the abandoning some of the most central dogma of "classic" APL interpreters:
- The notion that APL only has two data types: numbers and characters
- That arguments are always passed "by value"
- User-defined names are global by default, and local variables are visible to all sub-functions
APL# featured a single functional form (besides for trains) which was a hybrid between dfn and tradfn syntax, superficially resembling that of dfns, but allowing a header (calling signature) and control structures.
In 2012 Microsoft deprecated Silverlight for HTML5 in Windows 8, and Dyalog subsequently abandoned the APL# project.