2011 APL Programming Contest is Open

Dyalog has the pleasure of announcing the start of the 2011 edition of our International APL Programming Contest. The deadline for submissions this year is August 14th, 2011. The terms and conditions, and the tasks to be solved can be found at: http://www.dyalog.com/contest_2011

The First Prize winner can look forward to US$2,500 plus a round trip travel from anywhere in the world to the Dyalog '11 Conference in Boston Massachusetts, USA, during October 2-5 2011. In addition to the grand prize, second and third prizes will be awarded with US$1,200 and US$600 respectively and a further 20 contestants will receive $100 each.

Additionally, the people or organisations that introduce the winning students to the contest will receive the same dollar prizes – and they need not be students to make the introduction. This means that you (or if you prefer, your institution) will receive an amount equal to any prizes won by students that you have referred to the competition.

The purpose of the contest is specifically to encourage students and others to investigate APL; the organisers hope that participants will find that exposure to APL broadens their horizons and adds a new tool to their toolbox. A fully featured copy of the latest release of Dyalog APL is available free of charge to students, whether or not they wish to participate in the contest.

Students of other disciplines than Computer Science are also encouraged to participate: many of the most successful APL users have backgrounds in other sciences, and have found APL to be a “Tool of Thought” for expressing solutions to problems in a wide variety of fields. Last year, the competition was won by Ryan Tarpine, a computational biologist from Brown University. We would like to thank Ryan again this year, he has been instrumental in designing the 2011 problem set, and as a result we believe that the contest this year has the most interesting (and varied) set of tasks to date.

A total of US$12,600 in prize money has been provided by several sponsors, including US-based Fiserv, Italian based APL Italiana, Danish based SimCorp and UK-based Dyalog Ltd., as well as several anonymous individuals and companies.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Questions about APL implementations

One of the complaints I often hear about APL is that it uses too many custom symbols; on the other hand the ASCII replacements that J uses don't seem to be much better. I didn't really start to get APL until I acquired a keyboard with APL symbols on it, which apparently is a bit hard to come by these days.

So, what I was wondering is if anyone has considered doing an APL implementation for tablet based devices (Android or iPad), and if it is promoted as a "business calculator" application if that would help revive the language? The reason I was thinking of a tablet implementation is that you could easily have all the special symbols on your virtual keyboard. And since one of the areas that still uses APL is the financial sector (such as Morgan Stanley's version, A+), promoting it as a financial calculator app might get higher visibility.

Does anyone know if someone is already working on something like this, or would this be a good unexplored opportunity for a new tablet app developer?

would verbose be better?

Not only are the symbols a challenge, but it's very much a read-only language. I wonder if an alternate syntax would make it easier, while keeping the operator semantics. One example might be verbose RPN like PostScript or Forth. Another might be token enhanced such as SEXPRs.

I think symbols are better...

What's easier to read: "a + b - c", or "a plus b minus c"? I think symbols are more efficient once you get to know them well, but my main issue currently with APL is that the expressions aren't infix notation with algebraic operator precedence, and it's not postfix either. If I were to write my own APL like interpreter, it would probably use C style infix expressions with similar precedence / function calling syntax, and the addition of a lambda operator. I wonder if the result could still be considered APL though.

APL for tablet devices

Dyalog is working on a next-generation APL interpreter which targets "application virtual machines" like the JVM and Microsoft.Net (code name APL# - see http://www.aplsharp.com for a few more details). The language is still in the design phase but we are hoping to display a prototype at Dyalog'11 in Boston in October. Thanks to Miguel de Icaza and friends, we are hoping to be able to take advantage of Mono/Moonlight to run on both the Android and iThings. See http://tirania.org/blog/archive/2011/May-16.html. That won't be for another couple of years though.

We realise that the APL symbols and the order of execution alienate many potential users. However, APL is a mathematical notation. The most successful APL users (historically) all see the symbols as an important element of what makes APL a "Tool of Thought". Many experiments have been done to provide keywords or (as in J) digraphs, but none have been particularly popular. APL keyboards (US, UK and Danish layouts) are available from Dyalog. Also note that most modern APL interpreters, including Dyalog APL, provide a "language bar" from which beginners can pick the APL symbols while learning to type.

Having a normal precedence isn't really a practical option for APL, where all primitive functions are infix symbols. Sticking to the f(g(h(x))) order of execution still feels like the only sane option.

To those who love it, APL provides unique capabilities that we are not keen to dilute. Perhaps someone will design a new language which combines features of APL with other syntax and semantics (in fact, that has already happened many times). It won't be us, at least not in the near future.

I apologise for the length of these messages, I hope I can be forgiven for feeling that I needed to respond to some of the comments made so far.

This is not exactly a contest

A bravo to Dyalog to making efforts to popularize APL.

And a BOO to Dyalog, because it looks like you need to purchase a Dyalog system to participate. Their business model seems to be stuck in the 80s with proprietary licensed software across the board.

If Dyalog were serious about furthering the language and their business both, the contest would be open to those using free or open systems as well as theirs. If their system were free and open also, there would be a community forming around it, attracting novices and opening different new business opportunities for them from professionals.

Read the terms and conditions :-)

Dyalog APL is compliant with the ISO standard(s). As previously mentioned, you should be able to use almost any existing commercial or free APL system. Anyone who is eligible to win a prize can download a free educational copy of our product and use this to verify that the solution will execute there, before submitting it.

Since you bring up the issue of the 1980's business model: The £1000/year fee that is mentioned is what a professional developer in a large organisation, developing for internal use, would be expected to pay. We also offer a personal/non-commercial licence costing GBP 50 which is suitable for experimentation with APL solutions. You may use this licence for development until you start providing a billable service based on Dyalog APL. At that point, you will need a commercial license, but one of the options is to pay a 2% royalty of your invoiced revenue. If you give away your own software, you still only owe us 2% of your revenue ;-)

The APL market is not quite big enough (yet!) to support a professional research and development organisation based on free software, but we ARE trying to get there. I freely admit that the contest is part of that strategy :-)

Looks more like the 2011 Dyalog Programming Contest

Nice try to promote high-priced closed source proprietary software. Unfortunately, I do not know anyone who is interested.

I missed the part about

I missed the part about having to buy the implementation. I apologize for promoting this.

Not quite

From the contest terms and conditions:

  • There is no requirement to make any purchases in association with entering this contest. If you qualify to compete you also qualify for a free educational licence of Dyalog's Developer Suite. (Commercial licence fee value in excess of $1,000/year).
  • This programming contest is open to everyone (except contest organisers and employees of Dyalog Ltd.).
  • To be eligible for any of the prizes other than referral awards, you must meet the criteria for a free Dyalog Educational Licence and be a full time student.

  • Thanks for setting the

    Thanks for setting the record straight. I hope that's the way things really stand.

    I've had no trouble getting

    I've had no trouble getting an aducational licence from Dyalog in the past.

    Dyalog APL is Free for Educational Use

    For the record: Dyalog APL is completely free for Educational Use. No purchase of any kind is required in order to participate in this competition. Also note that (as mentioned on the contest web page): You are welcome to use any APL system to participate, including the open-source NARS2000 system. All you have to do is produce a UTF-8 text file in the format specified in the terms and conditions, containing your submission. APL interpreters are sufficiently compatible at the core language level for this to be a viable alternative, and our complete documentation is available online, free of charge - for anyone who wants to verify the compatibility.

    Thanks for the explanation.

    Thanks for the explanation.

    Dyalog appears to be only

    Dyalog appears to be only free for current University students. That's hardly what I would call 'completely free for Educational Use'. When I try to 'open' or 'xopen' the contest workspace file using NARS2000, it doesn't seem to recognize the file. Am I not understanding something here? It seems that a purchase is indeed required if free alternatives to Dyalog cannot access the workspace that contains the initial data for the problems.

    I'd like to jump in with a

    I'd like to jump in with a hearty endorsement for this contest. I competed last year and it was a great learning experience.

    For clarification: I did NOT have to buy Dyalog APL. While I could have used any APL implementation as explained in the terms, I used Dyalog APL. It was no trouble at all to get an educational license.

    You should not confuse a corporate sponsored contest with blatant advertising. Dyalog made very sure I was aware of other APL implementations and that it was perfectly acceptable to use them. They provided a way to access their implementation for free. The emphasis was always on APL in general, not Dyalog APL in particular.

    Full disclosure: I'm NOT a paid advocate. Dyalog did NOT encourage me to post here, I did that on my own. However, I did win money from them last year.

    Could you point me towards

    Could you point me towards any open source implementations of APL? The only thing I can find is A+ (http://www.aplusdev.org/) which seems quite different.

    FWIW, the APL FAQ suggests

    FWIW, the current APL FAQ points to thefreecountry.com's page of Free APL Compilers and Interpreters.

    Open Source APL

    I would recommend that you take a look at http://www.nars2000.org/.