Saturday, May 2, 2020

Language Design for Mobile Application-Free-Samples for Students

Question: Write an Essay on Concept Language Design for Mobile Application. Answer: Programming language is the basic building block of software development, be it for computer, laptop, tab or mobile phone. Many types of programming language have been created since the creation of Plankalkul in the 1940s. Each programming language has some good features as well as drawbacks. No programming language exists that is equipped with all the best features required to develop a program (Joorabchi, Mesbah Kruchten, 2013). Some languages support single platform development like in Windows, Android, MACOS, iOS and such whereas there are others like Java, Python, Dot Net and such that can be used to develop applications in multiple platform environment. A programming language needs to maintain certain parameters that will help a program developer to successfully develop and implement a program for any platform (Amatya Kurti, 2014). These parameters are as follows: Simplicity Orthogonality Data Types Syntax Design Support for Abstraction Expressivity Type Checking Exception Handling Restricted Aliasing The essay will provide detailed specifications for the features mentioned above that will be incorporated within a concept programming language design that can be used for the development of mobile application (McWherter Gowell, 2012). A programming language used for the development of mobile applications is expected to perform functionalities like Ability to work efficiently and in an event-driven manner Efficient in reducing battery usage of mobile device Supports graphical user interfaces comprehensively Ability to construct actual problems using customised data types Capable of using multimedia like watching videos, listening to music, playing games and such Provide the ability to send or receive data from other devices or from a server (Danado Paterno, 2012). A good programming language should have the following attributes: Unity, Clarity and Simplicity framework is provided for the thinking as well as expressing of algorithms Orthogonality has meaning for every combination of features Originality for the Application the framework of the program projects the logical structure of the algorithm Support for abstraction the data of the program projects resolution of problem Verification of program with ease verification of proper functionality of a program is determined Environment of Programming language gets external support Program portability ease of moving the program from the device where it is developed to other devices Cost of use execution, translation, creation and maintenance of program (Vaupel et al., 2014). The parameters of a programming language mentioned above are affected by the characteristics Readability, Writability and Reliability. (Source: "Design Criteria for Programming Languages", 2017) Writability This characteristic provides expressivity in a language. The writability of the language should be clear, brief, quick and accurate. This characteristic measures the ease with which a language can be used to develop programs for a chosen problem domain (Marcotty Ledgard, 2012). Readability The characteristic of readability ensures that the algorithm or nature of computation of the language is understood by its reader even if the reader is not a programmer (Teufel, 2012). Reliability This characteristic determines that the program is reliable that is, it does not show unexpected behaviour at any point of time (Fernandez, 2014). The specifications of the parameters of the programming language are as discussed below: Simplicity :- The simplicity of the programming language is dependent on the following aspects Quantity of basic features the simplicity of the program will depend on the number of basic features that is present in the program. The more basic features are there in the program the more hard the readability of the program will become. This is because the reader may have knowledge of a different subset of language than the programmer. Even very less amount of the features can hamper the readability of the program as an apparent single operation may require several instructions to encode ("Notes on Chapter 1 of Sebesta's "Programming Languages"", 2017). Multiplicity of features The program and its features will offer several options to perform the same operation (Hsu, Chater Vitanyi, 2013). For example: looping constructs (while, do while, for) Operator overloading wise use can help in the readability of the program but can hamper readability if used without consideration. For example, by using plus (+) symbol as a comparison operator, the overloading of operator is possible (Hsu, Chater Vitanyi, 2013). The concept programming language need to have these aspects in order to attain simplicity. Orthogonality :- In the language of programming, orthogonality signifies a set of features or constructs that can be used independently in any combination with each other. Orthogonality of a program is less if Certain combinations are prohibited as exceptions or a particular combination is not meaningful in relation to the meanings of its component parts (Gabriel, 2012). The concept programming language need to be orthogonal and for that to happen less amount of combinations should be present in the program features that are prohibited as exceptions. In addition, each combination should have relevance in relation to its component parts (Gabriel, 2012). An illustration of non-orthogonality in C language is provided to clarify the importance of orthogonality in the proposed conceptual programming language: A function can return a value of any type except an array type or a function type. An array is able to store values of any type, excluding void or a function type. Parameters to functions are passed by value excluding arrays, which are passed by reference. In the expression a+b, the meaning of b is dependent on the possibility of a being a pointer type or not (Gabriel, 2012). It is evident from the example provided above that non-orthogonality is not a good option for a programming language as it creates many issues. However, the presence of extreme orthogonality in a programming language creates issues for the readers. It is seen that if the quantity of special rules or exception to rules is reduced, the language becomes easier to learn, describe and implement (Gabriel, 2012). However, a programming language where the principle of orthogonality is applied strictly may have conceptual obscurity when a certain rule is applied to a context that has unusual combination. Therefore, this proves that the conceptual language should have flexible orthogonality principle to have efficient readability for the readers (Gabriel, 2012). Data Types :- Readability of a language improves with the adequate facilitation for defining data types and structures. For example, the FORTRAN language in its early stage lacked record construct. Therefore, the fields of an object failed to encapsulate within a single structure (Gries, 2012). The language should have adequate intrinsic data types as well. For example, the initial versions of C programming language had no Boolean type that forced a programmer to use int to represent true/false where zero is considered false and everything else is taken as true (Gries, 2012). Therefore, flag = 1 is used to set flag to true. Syntax Design :- A syntax design is generally a format that a programmer maintains while coding on a programming language. Every programming language has a different set of syntax design that is required to be maintained strictly for the code to be executed properly in that particular language. To create a syntax design for the conceptual programming language, certain norms are required to be maintained (Stefik Siebert 2013). Identifier forms the Identifier forms should be less restrictive on length unlike BASIC and FORTRAN 77. In COBOL, dashes were included to identifiers that were often mistaken with the subtraction operator. Special Words Some words carry special meaning within a program such as class, while, end, if and such. The syntax design of a language decides whether these special words are stored for serving special purpose within the language or can be used as names of variables and subprograms as well (Stefik Siebert 2013). The order of signalling the beginning or end of a compound statement such as a loop affects the readability of the programming language. Form and meaning The form ideally defines the semantics of a syntactic construct. For this to happen it is necessary to choose the special words wisely. For example, it is better to use if instead of glorp. It is beneficial if the meaning of a syntactic form coincides with all the contexts, rather than having different meanings in different contexts (Stefik Siebert, 2013). Support for Abstraction :- The process allows a programmer to define and deploy complex operations in such a way so that the details of implementation can be ignored. It is a vital aspect in the process of modern language designing. Data Abstraction and Procedural Abstraction are the two examples of the parameter (Meyer Weske, 2012). Expressivity :- The expressivity of a programming language is improved due to the presence of strong operators in the language that helps programmers to achieve the operation of the program developed by them while writing fewer codes. APL is a typical example of expressivity, which is inclusive of many strong operators that are dependent on a large character set (Nelson, Guha, Dougherty, Fisler Krishnamurthi, 2013). It is generally seen that assembly or machine languages do not possess expressivity where each operation does something relatively simple. This is the reason why a single instruction in a high-level language can be translated into many instructions in an assembly language. Those languages that are functional languages are considered to be extremely expressive as the functions are first-class entities (Nelson et al., 2013). Type Checking :- A programming language should have type checking, which means that it should have the capability to test for typing errors during the time of compilation and execution. The type checking process is better to be implemented at the time of compilation rather than during execution of a program. This is because, the process of type checking at the time of a program execution requires high runtime and it is less complex and less expensive to detect and repair such errors at the earlier phase of the program (Kastner, Apel, Thum Saake, 2012). An example can be cited in evidence of the theory mentioned above. In Java, the rule of type checking during compilation is very strict due to which the only type errors that occur during running time is caused due to explicit type casting by the programmer or from a wrong input (Kastner et al., 2012). Exception Handling:- It is the process of response that is provided at the time of occurrence of unusual or exceptional conditions that requires special processing. The process of exception handling often results in changing of the normal procedure of program execution. It is a powerful mechanism of handling the runtime errors to maintain the normal execution of an application (Sawadpong, Allen Williams, 2012). For example, suppose a programmer attempts to execute a program developed on a certain programming language that has ten statements. An exception occurrs in statement 4. In normal situation the rest of the statements from statement 1 to statement 3 and from statement 5 to statement 10 will also fail to execute. However, using exception handling will ensure that the rest of the statements are executed barring statement 4 (Sawadpong, Allen Williams, 2012). This enables normality in the flow of the application. Therefore, exception handling is an important parameter that is required to be implemented in the conceptual programming language that will ensure a steady flow in the execution of a mobile application even if any exception occurs during runtime (Sawadpong, Allen Williams, 2012). The following figure shows a flowchart on the exception handling in a programming language Figure 1: Method of Exception Handling (Source: Sawadpong, Allen Williams, 2012) Restricted Aliasing :- Aliasing is a process that refers to two or more distinctly different names that address the same memory cell at the same instance. This process creates many issues at the time of compilation. Restricted Aliasing is a rule that is formulated to resolve this issue. The role of a restricted aliasing is to confirm the compiler that a pointer to something is not aliased to the restrict qualifier keyword. In certain situations a compiler expects that an alias will occur in which instance the restricted aliasing protocol confirms the compiler about the above-mentioned situation ("Strict Aliasing", 2017). For example, in the statement provided below confirmation is given to the compiler that i1 and i2 will never point at the same memory location ("Strict Aliasing", 2017). void foo(int * restrict i1, int * restrict i2); The essay concludes with the fact that to design a conceptual programming language that can be used in the problem domain of mobile application development, it is necessary to implement the characteristics mentioned above wisely in the right forma References Amatya, S. . (2014). Cross-platform mobile development: challenges and opportunities. In ICT Innovations , 219-229. Danado, J. . (2012). Puzzle: a visual-based environment for end user development in touch-based mobile phones. Human-centered software engineering , 199-216. Design Criteria for Programming Languages. (2017). Retrieved August 28, 2017, from Jcsites.juniata.edu: https://jcsites.juniata.edu/faculty/rhodes/lt/plcriteria.htm Fernndez, M. (2014). Programming languages and operational semantics: a concise overview. Springer . Gabriel, R. P. (2012, October). The structure of a programming language revolution. In Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software. ACM , 195-214. Gries, D. (. (2012). Programming methodology: a collection of articles by members of IFIP WG2. 3. Springer Science Business Media . Hsu, A. S. (2013). Language Learning From Positive Evidence, Reconsidered: A Simplicity?Based Approach. Topics in cognitive science , 5 (1), 35-55. Joorabchi, M. E. (2013, October). Real challenges in mobile app development. In Empirical Software Engineering and Measurement, 2013 ACM/IEEE International Symposium on. IEEE , 15-24. Kstner, C. A. (2012). Type checking annotation-based product lines. ACM Transactions on Software Engineering and Methodology (TOSEM) , 21 (3), 14. Marcotty, M. . (2012). The world of programming languages. Springer Science Business Media . McWherter, J. . (2012). Professional mobile application development. John Wiley Sons . Meyer, A. . (2012). Data support in process model abstraction. Conceptual Modeling , 292-306. Nelson, T. G. (2013, August). A balance of power: Expressive, analyzable controller programming. In Proceedings of the second ACM SIGCOMM workshop on Hot topics in software defined networking. ACM , 79-84. Notes on Chapter 1 of Sebesta's "Programming Languages". (2017). Retrieved August 28, 2017, from Cs.scranton.edu: https://www.cs.scranton.edu/~mccloske/courses/cmps344/sebesta_chap1.html Sawadpong, P. A. (2012, October). Exception handling defects: An empirical study. In High-Assurance Systems Engineering (HASE), 2012 IEEE 14th International Symposium on. IEEE , 90-97. Stefik, A. . (2013). An empirical investigation into programming language syntax. ACM Transactions on Computing Education (TOCE) , 13 (4), 19. Strict Aliasing. (2017). Retrieved August 28, 2017, from Dbp-consulting.com: https://dbp-consulting.com/tutorials/StrictAliasing.html Teufel, B. (2012). Organization of programming languages. Springer Science Business Media . Vaupel, S. T. (n.d.). Model-driven development of mobile applications allowing role-driven variants. In International Conference on Model Driven Engineering Languages and Systems , 1-17.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.