Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/567532.567533acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Carrier arrays: an idiom-preserving extension to APL

Published: 26 January 1981 Publication History

Abstract

The idiomatic APL programming style is limited by the constraints of a rectangular, homogeneous array as a data structure. Non-scalar data is difficult to represent and manipulate, and the non-scalar APL functions have no uniform extension to higher rank arrays. The carrier array is an extension to APL which addresses these limitations while preserving the economical APL style. A carrier array is a ragged array with an associated partition which allows functions to be applied to subarrays in parallel. The primitive functions are given base definitions on scalars and vectors, and they are extended to higher rank arrays by uniform application mechanisms. Carrier arrays also allow the last dimensions of an array to be treated as a single datum; the primitive functions are given extended definitions on scalars and vectors of this non-scalar data.This paper defines the carrier array and gives the accompanying changes to the definitions of the APL primitive functions. Examples of programming with carrier arrays are presented, and implementation issues are discussed.

References

[1]
Abrams, Philip S. An APL Machine. Technical Report SLAC-114 UC-32 (MISC), Stanford Linear Accelerator Center, February, 1970.
[2]
Abrams, Philip S. What's Wrong with APL. In APL 75, pages 1-8. STAPL, June, 1975.
[3]
Bernecky, Bob and Kenneth E. Iverson. Operators and Enclosed Arrays. Presented at A Standard APL Workshop, Minnowbrook Conference Center, September 30 - October 3, 1980.
[4]
Falkoff, A. D., and D. L. Orth. Development of an APL Standard. APL Quote Quad 9(4-Part 2):409-453, June, 1979.
[5]
Ghandour, Ziad, and Jorge Mezei. General Arrays, Operators and Functions. IBM Journal of Research and Development 17(4):335-352, July, 1973.
[6]
Guibas, Leo J., and Douglas K. Wyatt. Compilation and Delayed Evaluation in APL. In 5th POPL Proceedings, pages 1-8. POPL, January, 1978.
[7]
Gull, W. E., and M. A. Jenkins. Recursive Data Structures in APL. CACM 22(1):79-96, January, 1979.
[8]
Iverson, Kenneth E. A Programming Language. John Wiley and Sons, Inc., New York, 1962.
[9]
Iverson, Kenneth E. Operators and Functions. Technical Report RC 7091, IBM Thomas J. Watson Research Center, 1978.
[10]
Iverson, Kenneth E. Operators. TOPLAS 1(2):162-176, October, 1979.
[11]
Jenkins, M. A., and Jean Michel. Operators in an APL Containing Nested Arrays. APL Quote Quad 9(2):8-20, December, 1978.
[12]
Johnston, Ronald L. The Dynamic Incremental Compiler of APL\3000. APL Quote Quad 9(4-Part 1):82-87, June, 1979.
[13]
Kernighan, Brian W. and P. J. Plauger. Software Tools. Addison-Wesley, Reading,Massachusetts, 1976.
[14]
Mezei, J. E. Uses of General Arrays and Operators. In 6th International APL User's Conference, pages 334-348. APL User's, May, 1974.
[15]
Miller, Terrence. Tentative Compilation: A Design for an APL Compiler. APL Quote Quad 9(4-Part 1):88-95, June, 1979.
[16]
More, Trenchard, Jr. Axioms and Theorems for a Theory of Arrays. IBM Journal of Research and Development 17(2):135-175, March, 1973.
[17]
More, Trenchard, Jr. The Nested Rectangular Array as a Model of Data. APL Quote Quad 9(4-Part 1):55-73, June, 1979.
[18]
Morris, James H., Eric Schmidt, and Philip Walder. Experience with an Applicative String Processing Language. In 7th POPL Proceedings, pages 32-46. POPL, January, 1980.
[19]
Morrow, Alex. Private Communication, Oct. 1980.
[20]
Parnas, D. L. On the Criteria To Be Used in Decomposing Systems into Modules. CACM 15(12):1053-1058, December, 1972.
[21]
Perlis, Alan J. Steps Towards An APL Compiler - Updated. Technical Report 24, Yale University, March, 1975.
[22]
Perlis, Alan J., and Spencer Rugaber. The APL Idiom List. Technical Report 87, Yale University, April, 1977.
[23]
Perlis, Alan J., and Spencer Rugaber. Programming with Idioms in APL. APL Quote Quad 9(4-part 1):232-235, June, 1979.
[24]
Wiedmann, Clark. The APL Workshop Session on Standardization of APL Systems. APL Quote Quad 8(2):15-17, December, 1977.
[25]
Wiedmann, Clark. APL Problems with Order of Execution. APL Quote Quad 8(3):25-29, March, 1978.
[26]
Zaks, Rodney. A Microprogrammed APL Implementation. Sybex, Berkeley, Ca., 1978.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '81: Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 1981
230 pages
ISBN:089791029X
DOI:10.1145/567532
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 January 1981

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Acceptance Rates

POPL '81 Paper Acceptance Rate 24 of 121 submissions, 20%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 277
    Total Downloads
  • Downloads (Last 12 months)34
  • Downloads (Last 6 weeks)8
Reflects downloads up to 17 Oct 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media