Functional Pedagogical Array Language (FPAL) Research Paper

Exclusively available on Available only on IvyPanda® Made by Human No AI

In evaluating a programming language, as a comparison to its antecedents, one of the criteria that should be looked at is the criteria for which antecedents were considered to have weaknesses, and the advantages brought by the new language. When analyzing such language as Functional Pedagogical Array Language (FPAL), the aforementioned statement might not be always true. In that regard, taking such languages as “A Programming Language” (APL) and LISP, by which FPAL was heavily inspired, it cannot be stated that FPAL is a serious improvement over its antecedents. Nevertheless, it can be stated in general that FPAL can be seen as an improvement in terms of code execution.

FPAL as a language was designed for class project implementation, and thus, it can be stated that the main purpose for the language was explaining the programming procedures. LISP is one of the oldest programming languages in the world. LISP is a family of languages, the most widely used can be seen through common LISP, a language that was originally defined in 1984 by “the publication of Guy Steele’s Common Lisp: the Language (CLTL1)” (Graham, 1994).

APL is a programming language representation of what can be originally dated to ancient hieroglyphics (Mclntyre, 1991). The modern representation of APL is dated, however, is dated back to the early 1960s to the researcher Kenneth E. Iverson who developed APL to express mathematical functions clearly and consistency for computer use (Henderson, 2009).

The three languages explained in this a paper belonged to the family of functional languages, i.e. languages in which functions are not assigned to variables , but manipulated directly together with data items (Henderson, 2009). Thus, the way the language approach functions can be seen as an important criterion for evaluation, specifically in the syntax they are used. LISP is one of the earliest functional languages, where one of the key characteristics of LISP is that it is a collection of functions to which users can add their own. Another distinguishing characteristic is that functions in Lisp are provided as objects, i.e. they can be treated like other more familiar data types (Graham, 1994).

The syntax in which the functions are defined and used in LISP can be seen through defun which builds a function and stores it under the name given as the first argument (Graham, 1994). Similarly, APL uses functions although several deficiencies might be seen in terms lacking control structure, dynamic binding, “and the difficulty to handle properly functions” (Girardot, 1992, p. 92). Another disadvantage can be seen through the exclusive use of symbols, which implementation might provide difficulties for users, in terms of integration of character set. In FPA, the functions are first-class values, and their constructs can be used anywhere a statement requires a function.

Another point of comparison can be seen in that the scope of the FPAL is strictly static, where it depends on nesting the definitions of functions within one another, rather that the time function calls happen during execution (Baldwin, 2011). The latter can be seen as an advantage over LISP which scope is dynamic. The user looks over the containing environments at the time the functions were defined (Graham, 1994). APL’s scope is similarly defined by the sequence in which the functions are called (Henderson, 2009, p. 491).

At run time, the definition of each variable is searched within the code for the first time it was invoked, which provides a disadvantage in terms of the difficulty in understanding the program’s effect on the variables, and the search mechanism that will slow down the execution of the program (Henderson, 2009 $91). The latter makes APL difficult for the execution of powerful operators with very tense notations make APL difficult to read and understand (Scott, 2009, p. 330).

Another are for comparison can be seen through the way the language operate with arrays. FPAL contain a number of functions that conduct computations which are only relevant to array’s arguments. In terms of arrays, APL was found to be less efficient, mainly due to its interpretive nature, for which in order to increase efficiency, APL operates on whole arrays (Girardot, 1992). LISP contains an array data type, supporting arrays up to seven dimensions (Steele, 1990).

It can be concluded that at large the three languages share many similar characteristics, all belonging to the family of functional languages. The characteristics of FPAL, which generally support its improvement over APL and LISP can be seen in that developed intentionally for a specific purpose, the language took the strengths of its antecedents, while leaving the drawbacks. In that regard, it can be stated that the static scope can be seen as the main differentiating factor that might provide an impact in performance over APL and LISP. AT the same time, it can be stated that APL and LISP have their own disadvantages. Nevertheless, comparing them all, it can be stated that FPAL has an advantage over the APL and LISP.

References

Baldwin, D. (2011). An Informal Overview of FPAL. SUNY Geneseo Department of Computer Science. Web.

Girardot, J.-J. (1992). The CTalk programming language: a strategic evolution of APL. SIGAPL APL Quote Quad, 23(1), 78-87. Web.

Graham, P. (1994). On Lisp : advanced techniques for Common Lisp. Englewood Cliffs, N.J.: Prentice Hall.

Henderson, H. (2009). Encyclopedia of computer science and technology (Rev. ed.). New York: Facts On File.

Mclntyre, D. B. (1991). Language as an intellectual tool: From hieroglyphics to APL IBM Systems Journal 30(4), 554-581.

Scott, M. L. (2009). Programming language pragmatics (3rd ed.). Amsterdam ; Boston: Elsevier/Morgan Kaufmann Pub.

Steele, G. L. (1990). COMMON LISP: the language: Digital Press.

More related papers Related Essay Examples
Cite This paper
You're welcome to use this sample in your assignment. Be sure to cite it correctly

Reference

IvyPanda. (2022, March 26). Functional Pedagogical Array Language (FPAL). https://ivypanda.com/essays/functional-pedagogical-array-language-fpal/

Work Cited

"Functional Pedagogical Array Language (FPAL)." IvyPanda, 26 Mar. 2022, ivypanda.com/essays/functional-pedagogical-array-language-fpal/.

References

IvyPanda. (2022) 'Functional Pedagogical Array Language (FPAL)'. 26 March.

References

IvyPanda. 2022. "Functional Pedagogical Array Language (FPAL)." March 26, 2022. https://ivypanda.com/essays/functional-pedagogical-array-language-fpal/.

1. IvyPanda. "Functional Pedagogical Array Language (FPAL)." March 26, 2022. https://ivypanda.com/essays/functional-pedagogical-array-language-fpal/.


Bibliography


IvyPanda. "Functional Pedagogical Array Language (FPAL)." March 26, 2022. https://ivypanda.com/essays/functional-pedagogical-array-language-fpal/.

If, for any reason, you believe that this content should not be published on our website, please request its removal.
Updated:
This academic paper example has been carefully picked, checked and refined by our editorial team.
No AI was involved: only quilified experts contributed.
You are free to use it for the following purposes:
  • To find inspiration for your paper and overcome writer’s block
  • As a source of information (ensure proper referencing)
  • As a template for you assignment
Privacy Settings

IvyPanda uses cookies and similar technologies to enhance your experience, enabling functionalities such as:

  • Basic site functions
  • Ensuring secure, safe transactions
  • Secure account login
  • Remembering account, browser, and regional preferences
  • Remembering privacy and security settings
  • Analyzing site traffic and usage
  • Personalized search, content, and recommendations
  • Displaying relevant, targeted ads on and off IvyPanda

Please refer to IvyPanda's Cookies Policy and Privacy Policy for detailed information.

Required Cookies & Technologies
Always active

Certain technologies we use are essential for critical functions such as security and site integrity, account authentication, security and privacy preferences, internal site usage and maintenance data, and ensuring the site operates correctly for browsing and transactions.

Site Customization

Cookies and similar technologies are used to enhance your experience by:

  • Remembering general and regional preferences
  • Personalizing content, search, recommendations, and offers

Some functions, such as personalized recommendations, account preferences, or localization, may not work correctly without these technologies. For more details, please refer to IvyPanda's Cookies Policy.

Personalized Advertising

To enable personalized advertising (such as interest-based ads), we may share your data with our marketing and advertising partners using cookies and other technologies. These partners may have their own information collected about you. Turning off the personalized advertising setting won't stop you from seeing IvyPanda ads, but it may make the ads you see less relevant or more repetitive.

Personalized advertising may be considered a "sale" or "sharing" of the information under California and other state privacy laws, and you may have the right to opt out. Turning off personalized advertising allows you to exercise your right to opt out. Learn more in IvyPanda's Cookies Policy and Privacy Policy.

1 / 1