Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tcdowney/uroc-2012-apl

An analysis of the APL programming language that were conducted as a part of the Indiana University Undergraduate Research Opportunities in Computing (UROC) program.
https://github.com/tcdowney/uroc-2012-apl

Last synced: 6 days ago
JSON representation

An analysis of the APL programming language that were conducted as a part of the Indiana University Undergraduate Research Opportunities in Computing (UROC) program.

Awesome Lists containing this project

README

        

IU UROC 2012 - Dyalog APL Project
=============

NAS Parallel Benchmarks
----------------
For our research project, my partner Brett Schrank and I studied Dyalog APL and worked with our graduate mentor [Aaron Hsu](https://github.com/arcfide) to translate three of the [NAS Parallel Benchmarks](http://www.nas.nasa.gov/publications/npb.html) (Integer Sort, Conjugant Gradient, and Embarassingly Parallel) from C and FORTRAN into APL.

Our implementations of these benchmarks can be found in `benchmarks.tex` in the `NAS Parallel Benchmarks` folder. To help others make sense of the relatively foreign looking code, Aaron has packaged everything as a nice tex document that is meant to be executed with his [ConTeXtLP](https://github.com/arcfide/ConTeXtLP) literate programming system.

Additionally, Brett and I wrote up an explanation of the code in our final report, which can be found in the root of the repository in the file `report.tex`.

These benchmarks will be used to test Aaron's upcoming HPAPL parallel programming language.

Learning APL
------------------
For Brett and I, the main purpose of this project was to evaluate an "unusual" programming language and determine what challenges a novice programmer might face while learning it. To do this, we each wrote a series of journal entries (my entries can be found in the `Journal Entries` folder) as we worked through the [Mastering Dyalog APL](http://www.dyalog.com/MasteringDyalogAPL/MasteringDyalogAPL.pdf) text. Additionally, we completed a handful of [Project Euler](http://projecteuler.net/) problems to help put what we had been learning into practice.

Brett and I then made a poster of our findings and presented it at the UROC poster session. The poster is also located in the repository root as `poster.png`.

Lastly, we both wrote a short paper entitled "Thoughts on APL" discussing our experience learning the language and our suggestions for making Dyalog APL more accessible to the beginner. Again, this paper is located in the repository root in the document `thoughtsonapl.txt`.