Year of Publication: 2013
Page Numbers: 74-79
Authors: Selvakumar Samuel, Arangasamy Kovalan
Conference Name: The First International Conference on Green Computing, Technology and Innovation (ICGCTI2013)
- Malaysia


This paper evaluates the features of mainstream programming paradigms. Imperative, object oriented programming and functional programming concepts are considered here. This is an effort to identify the programming paradigms which consume less resource from mobile devices. In general any programming language is a collection of API’s which is mainly based on a core programming paradigm and a few other programming paradigms, for example Java programming language is based on Object oriented programming paradigm as a core and also integrated other imperative programming paradigms concepts. Designers usually depend on the programming languages, language oriented programming design is in current practice. Choosing appropriate programming paradigms during the mobile application design is not in practice now; Failure to use best approaches for mobile computing from programming paradigms will cause mobile applications to consume more mobile resources. Imperative paradigm concepts such as inheritance, creating redundant objects, unnecessary constructors, recursion, strings concatenation, thread synchronization, using global variables and abstract methods results in redundancy, memory leaks, stack overflow, low execution speed and consumes more memory. These features are relatively not suitable for mobile software development. Functional paradigm concepts such as higher order functions, tail recursion, lazy evaluation, referential transparency, parametric polymorphism, and list comprehension principles are suitable for mobile software development as they consume less memory and or use less processing power. Many modern programming languages such as Java, Scala, C#, F#, etc., support the fusion of object oriented and functional programming paradigms. Using appropriate paradigms on those programming languages will optimize the resource utilisation of mobile applications.