Total views : 486

A Design Level Optimization Approach for Functional Paradigm Software Designs Considering Low Resource Devices Development

Affiliations

  • Periyar Maniammai University, Vallam, Thanjavur - 613403, Tamil Nadu, India

Abstract


Objectives: The main objective of this paper is to identify suitable programming concepts from Functional Programming paradigm concerning low resource devices development and eventually contribute an approach for design level optimization. Methods: Experiments have been conducted, CPU time and memory consumptions (Private Bytes) were measured. Findings: The research results indicated that Pattern Matching, Lazy, Curried, Tail Recursion, Functional Composition, Referential Transparency and Higher Order Functions with functions as parameters concepts consumed less CPU and memory resources compared to their alternative concepts. This paper suggests that the above mentioned concepts can be applied by any software engineering practitioners in designing resource efficient constructs for software applications. Applications: Using these guidelines substantial performance growth can be formed and at the same time, performance degradation issues can be easily avoided. Eventually, this paper contributes a way to optimize the Functional Programming design at design level.

Keywords

Functional Programming, Optimization, Programming Paradigms, Software Design Level Optimization and Mobile Computing.

Full Text:

 |  (PDF views: 283)

References


  • Taking Your Server’s Pulse. 2015. Available from: http:// technet.microsoft.com/en-us/magazine/2008.08.pulse.aspx
  • Bartlett J, Bruno Jr D. Programming from the Ground Up. Oklahoma: Bartlett Publishing; 2004 Jul.
  • Bentley J. Writing efficient programs. New York: PrenticeHall Software Series; 1982 Jun.
  • The Fallacy of Premature Optimization. 2015. Available from: http://ubiquity.acm.org/article.cfm?id=1147993 5. Hofmann M, Jost S. Static prediction of heap space usage for first-order functional programs. Proceedings of the 30th ACM SIGPLAN-SIGACT; New York. 2003 Jan. p. 185–97.
  • Albert E, Geniam S, Zamalloa MG. Parametric inference of memory requirements for garbage collected languages. Proceeding of the 10th ISMM; New York. 2010 Jun. p. 121–30.
  • Simoes H, Vasconcelos P, Florido M, Jost S, Hammond K. Automatic amortised analysis of dynamic memory allocation for lazy functional programs. Proceedings of the 17th ACM SIGPLAN; New York, 2012 Sep. p. 165–76.
  • Hannig F, Roloff S, Snelting G, Teich J, Zwinkau A. Resource-aware programming and simulation of MPSoC architectures through extension of X10. Proceedings of the 14th IWSCES; New York. 2011 Jun. p. 48–55.
  • A Target Implementation for High-Performance Functional Programs. 2015. Available from: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.309.4272&rep=rep1&t ype=pdf
  • Minutolo A, Esposito M, Pietro GD. A lazy evaluation approach for mobile reasoning in DSSs. Proceedings of the 12th CINTI; Italy. 2011 Nov. p. 307–12.
  • Pankratius V, Schimdt F, Garreton G. Combining functional and Imperative Programming for multicore software: An empirical study evaluating Scala and Java. Proceedings of 34th ICSE; New York. 2012 Jun. p. 123–33.
  • Updating and extending the open source Java Coverage Tool. Coverlipse. 2016. Available from: https://www.inf.ed.ac.uk/publications/thesis/online/IM090718.pdf 13. Er MC. Performance evaluations of recursive and iterative algorithms for the Towers of Hanoi Problem. Computing, Springer-Verleg. 1986 May; 3(7):93–102.
  • Lim H. A performance comparison on characteristics of static and dynamic software watermarking methods. Indian Journal of Science and Technology. 2015 Sep; 8(21):1–6.
  • Hansen MR, Rischel H. Functional Programming using F#. New York: Cambridge University Press; 2013 May.
  • Harrop J. F# for Scientists. New Jersey: John Wiley and Sons Inc; 2008 Feb.
  • Pickering R. Beginning F#. New York: Apress; 2009 Dec.
  • Machado R. An Introduction to Lambda Calculus and Functional Programming. Proceeding of the 2nd WEIT; Rio Grande. 2013 Apr. p. 26–33.
  • Hudak P. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambride: Cambridge University Press; 2000 Feb.
  • Fenwick M, Sesanker C, Schiller MR, Ellis HJ, Hinman ML, Vyas J. An open-source sandbox for increasing the accessibility of Functional Programming to the bioinformatics and scientific communities. Proceeding of the 9th ITNG; Las Vegas. 2012. p. 89–94.
  • Petricek T, Skeet J. Real world functional programming: With Examples in F# and C#. New York: Manning Publications Company; 2010 Nov.
  • An Introduction to Functional Programming for .NET Developers. 2015. Available from: https://msdn.microsoft.com/en-us/magazine/ee336127.aspx
  • Muddu B. Metrics for Modularization Assessment of Scala and C# Systems. Proceeding of the 4th IWETSM; San Francisco. 2013 May. p. 35–41.
  • Chiusano P, Bjarnason R. Functional Programming in Scala. New York: Manning Publications Company; 2013.
  • Clinger WD. Proper Tail Recursion and Space Efficiency. Proceedings of the PLDI; USA. 1998 May. pp. 174–85.
  • Strachey C. Fundamental concepts in programming languages. Higher-Order and Symbolic Computation, Kluwer Academic Publishers. 2000 Apr; 13(1-2):11–49.
  • Swartz J. Learning Scala: Practical Functional Programming for the JVM. Sebastopol: O’Reilly Media; 2014 Dec.
  • Mangano S. Mathematica Cookbook. Sebastopol: O’Reilly Media; 2010 May.
  • Clack C, Myers C, Poon E. Programming with Miranda. New Jersey: Prentice Hall; 1994.
  • Functional Programing without Lambdas: Currying and Uncurrying. 2015. Available from: http://www.cs.rit.edu/~rpj/ courses/abstrprac2002/springlabs/lab3/lab321.html
  • Elliott E. Programming JavaScript Applications: Robust Web Architecture with Node, HTML5 and Modern JS Libraries. Sebastopol: O’Reilly Media; 2014 Jun.
  • Hutton G. Programming in Haskell. New York: Cambridge University Press; 2007 Jan.
  • Syme D, Neverov G, Margetson J. Extensible pattern matching via a lightweight language extension. Proceedings of 12th ICFP; New York. 2007 Oct. p. 1–12.
  • Minsky Y, Madhavapeddy A, Hickey J. Real World OCaml: Functional Programming for the Masses. Sebastopol: O’Reilly Media Inc; 2013 Nov.
  • Dietrich R. How to use Guarded Functional Programming. Proceeding of SWDP; London. 1991. p. 35–50.
  • Functions (F#). 2015. Available from: https://msdn.microsoft.com/en-us/library/dd233229.aspx
  • Roebuck K. Functional Programming languages: Highimpact Strategies - What You Need to Know: Definitions, Adoptions, Impact, Benefits, Maturity and Vendors. Queensland: Emereo Publishing; 2012.
  • Bird R. Thinking Functionally with Haskell. Cambridge: Cambridge University Press; 2014 Nov.
  • Functional Programming and Specification. 2015. Available from: http://www.drps.ed.ac.uk/15-16/dpt/cxinfr09033.htm 40. Evaluation Strategies. 2015. Available from: http://www.cse.iitd.ac.in/~saroj/LFP/LFP_2013/sml6.pdf
  • Some History of Functional Programming Languages. 2015. Available from: https://www.cs.kent.ac.uk/people/ staff/dat/tfp12/tfp12.pdf
  • Totoo P, Deligiannis P, Loidl H. Haskell vs. F# vs. Scala: A Highlevel Language Features and Parallelism Support Comparison. Proceedings of the 1st FHPC; New York. 2012 Sep. p. 1–12.

Refbacks

  • There are currently no refbacks.


Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 License.