Saturday, March 2, 2013

KBP Assignment

Concepts of Programming Languages 10th edition
Chapter 1

For Mr. TriDjoko Wahjono

Review Questions :
  1. Increased capacity to express ideas, Improved background for choosing appropriate languages, Increased ability to learn new languages, Better understanding of the significance of implementation, Better use of languages that are already known, Overall advancement of computing.
  2. It makes learning a new language easier, make a newly written program language easier to be learnt by new user, and get more people involved in on a global scale which would actually benefit the entire computing community.
  3. Language that has dominated scientific computing over pas 50 years is Fortran.
  4. Language that has dominated business applications over pas 50 years is Cobol.
  5. Language that has dominated artificial intelligence over pas 50 years is LISP.
  6. Most UNIX is written in C language.
  7. If there are too many features then the basic simplicity of reading a program could be lost. The simpler and more user-friendly programming languages allow for a smoother creation process, especially if there are many people working on the same code.
  8. Because the build in operator has the precision and the compiler knows all the precision the operators,  and it works on that precision. But if user create his/her own operator, the compiler doesn't know how to make precision of this operator.
  9. C has 2 structured data types (arrays and structs). Arrays can be returned from functions, but structs can't.
  10. Algol 68 is using orthogonality as a primary design criterion.
  11. The selection statement plus GOTO is used to build more complicated control statement such as FOR loop.
  12. Sub-programs.
  13. A program is said to be reliable if it performs to its specifications under all conditions.
  14. Because it can lead to lots of hard-to-debug errors.
  15. Aliasing : two or more distinct names that can be used to access the same memory cell.
  16. The ability of the program to intercept run time error.
  17. If it is hard to read, then it is hard to write.
  18. Many run time checks will prohibit fast code execution. If optimization is used, compiling will be slower but execution will be faster.
  19. The basic architecture of computers (von Neumann).
  20. Imperative languages.
  21. Incompleteness of type checking and inadequacy of control statements.
  22. Data abstraction, inheritance and dynamic (run-time) method.
  23. Smalltalk.
  24. Reliability and Cost of execution.
  25. Compilation, Pure Interpretation, Hybrid Implementation System.
  26. Compiler.
  27. It serves as a database for the compilation process.
  28. A form of instruction set designed for efficient execution by a software interpreter.
  29. A compromise/combination of compilation and interpretation.
  30. The advantages of using JBuilder : 
    1. Reduce leaning curve by using the same IDE for multiple platforms.
    2. Speed development with support for the latest Java technologies.
    3. Enhanced usability and feature navigation.
    4. Easily move JBuilder and Eclipse projects forward.
    5. Experience unparalleled productivity and code reuse.
    6. Rapidly create sophisticated Swing-based applications.
    7. Analyze, debug, and tune applications within the IDE.
    8. Increase individual and team productivity.
    9. Accelerate creation of Web services.
    10. Improve productivity and code comprehension with UML modeling and code archeology.
    11. Improve code quality with audits and metrics.
    12. Leverage the latest Eclipse open source framework.
Problem Set :
  1. Yes, in programming, a problem can be solved by so many ways, but to solve it in a particular algorithmic step, the programmer required to have programming language skills. The programmer might have to use some of the built-in functions in specific programming language to solve it in a particular algorithmic step. The programmer have to have that specific programming language skills to be able to use the functions properly.
  2. According to historical accounts on who was the first programmer, Lord Byron's daughter, Augusta Ada Byron, the Countess of Lovelace, was the first person to write a computer program for Charles Babbage's Analytical engine.
  3. If we write a program with multiple programming language, sometimes the weakness of the language used in that program occurs unexpectedly. But if we can manage to use all the functions from each language properly, we can get so much advantages by using each language's strong point.
  4. The performance for each language is different based on the purpose of making the program. For example, for the business application, it's better using Cobol than C, but in the scientific application, it's better using C than Cobol.
  5. In languages for web software, the developer is obliged to define all the ways the web could follow during its life to solve the problems. In artificial intelligence, the developer only defines knowledge to be used, a software reasoning mechanism finds itself the right way to solve the problem.
  6. According to me, the readability characteristic is the most important for a programming language. By the high readability value, we can cover all other characteristics. A good high-level language will allow programs to be written in some ways that resemble a quite-English description of the underlying algorithms. If care is taken, the coding may be done in a way that is essentially self-documenting.
  7. The purpose of using semicolons to terminate a statement in Java is to make the statements look unambiguous, and most of programming languages had agreed to use this symbol to terminate a statement, although there are some languages that's using dot(.) to terminate a statement.
  8. The pros of using functions and subroutines are the usability of that statements many times without type it again and again, and in a project we can share our tasks to others by split it into many functions. The cons of using functions and subroutines are most of the function can only return one value, and it there might be a bug in that function if not coded properly.
  9. Orthogonality means that a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language. The more orthogonal the design, the fewer exceptions, the simpler programming language will be made.

No comments:

Post a Comment