Archive for 2014

Problem Set Chapter 6 (Programming Language Concept)

Rabu, 05 November 2014
Posted by Andreas Kwan
  1. What are the arguments for and against Java’s implicit heap storage recovery, when compared with the explicit heap storage recovery required in C++? Consider real-time systems.
Answer :
Implicit eliminates the creation of dangling pointers. Disadvantage : cpu-time to do recovery, sometimes when there’s plenty of heap storage so recovery isn’t necessary.
  1. What are the arguments for the inclusion of enumeration types in C#, although they were not in the first few versions of Java?
Answer :
Java are strongly typed in the same sense as Ada. Types can be explicitly cast, which could result in a type error. However, there are rules of a language have an important effect on the value of an arithmetic operator with one floating-point operand and one integer operand is legal. The value of the integer operand is coerced to floating-point, and a floating point operation takes place. This is what is usually intended by the programmer.
  1. What would you expect to be the level of use of pointers in C#? How often will they be used when it is not absolutely necessary?
Answer :
In C#, memory address pointers can only be used within blocks specifically marked as unsafe, and programs with unsafe code need appropriate permissions to run.
  1. What array operations are provided specifically for single-dimensioned arrays in Ada?
Answer :
There are specifically a array operations provided for single-dimensioned arrays in Ada, it is “Catenation” specified by the associative array.
  1. Define row major order and column major order.
Answer :
For row major order, the elements of the array that have as their first subscript the lower bound value of that subscript are stored first, followed by the elements of the second value of the first subscript, and so forth. If the array is a matrix, it is stored  by rows.For column major order, the elements of an array that have as their last subscript the lower bound value of that subscript are stored first, followed by the elements of the second value of the last subscript, and so forth. If the array is a matrix, it is stored by columns.
  1. What is an access function for an array?
Answer :
Access function maps subscript expressions to an address in the array.
  1. What are the required entries in a Java array descriptor, and when must they be stored (at compile time or run time)?
Answer :
In Java all arrays are fixed heap-dynamic arrays. Once created, tese arrays keep the same subscript ranges and storage. Secondarily, Java supports jagged arrays and not rectangular arrays. Being a fixed heap-dynamic array the entries will be established and fixed at run time.
  1. What is the structure of an associative array?
Answer :
The structure of an associative array is the unordered collection of elements indexed by an equal number of KEYS.

Problem Set Chapter 5 (Programming Language Concept)

Rabu, 29 Oktober 2014
Posted by Andreas Kwan
7. Assume the following JavaScript program was interpreted using static-scoping rules. What value of x is displayed in function sub1? Under dynamic-scoping rules, what value of x is displayed in function sub1 ?
Answer :
var x;
function sub1() {
document.write(“x = ” + x + “<br />”);
}
function sub2() {
var x;
x = 10;
sub1();
}
x = 5;
sub2();
Answer:
Static scope: x=5, Dynamic scoping: x=10.
8. Consider the following JavaScript program:
Answer :
var x, y, z;
function sub1() {
var a, y, z;
function sub2() {
var a, b, z;
. . .
}
. . .
}
function sub3() {
var a, x, w;
. . .
}
List all the variables, along with the program units where they are declared, that are visible in the bodies of sub1, sub2, and sub3, assuming static scoping is used.
Answer:
Sub1: a(sub1), y(sub1), z(sub1), x(main)
Sub2: a(sub2), b(sub2), z(sub2), y(sub1), x(main)
Sub3: a(sub3), x(sub3), w(sub3), y(main), z(main)
9. Consider the following Python program:
Answer :
x = 1;
y = 3;
z = 5;
def sub1():
a = 7;
y = 9;
z = 11;
. . .
def sub2():
global x;
a = 13;
x = 15;
w = 17;
. . .
def sub3():
nonlocal a;
a = 19;
b = 21;
z = 23;
. . .
. . .
List all the variables, along with the program units where they are
declared, that are visible in the bodies of sub1, sub2, and sub3, assumingstatic scoping is used.
Answer:
point 1 :  x = 1(main), y = 9 (sub1), z = 11(sub1) ,a = 7(sub1);
point 2 :  x =15(sub2), w = 17(sub2), a = 13(sub2), y = 9(sub1);
point 3 :  x = 15(sub2), b = 21(sub3), a = 19(sub1), z = 23(sub3), w = 17(sub 2);
point 4 :  x = 15(sub2), b = 21(sub3), a = 19(sub1), z = 23(sub3), w = 17(sub 2);
10. Consider the following C program:
Answer :
void fun(void) {
int a, b, c; /* definition 1 */
. . .
while (. . .) {
int b, c, d; /*definition 2 */
. . . 1
while (. . .) {
int c, d, e; /* definition 3 */
. . . 2
}
. . . 3
}
. . . 4
}
For each of the four marked points in this function, list each visible variable,
along with the number of the definition statement that defines it.
Answer:
Point 1: a:1, b:2, c:2, d:2
Point 2: a:1, b:2, c:3, d:3, e:3
Point 3: a:1, b:2, c:2, d:2
Point 4: a:1, b:1, c:1
11. Consider the following skeletal C program:
Answer :
void fun1(void); /* prototype */
void fun2(void); /* prototype */
void fun3(void); /* prototype */
void main() {
int a, b, c;
. . .
}
void fun1(void) {
int b, c, d;
. . .
}
void fun2(void) {
int c, d, e;
. . .
}
void fun3(void) {
int d, e, f;
. . .
}
Given the following calling sequences and assuming that dynamic scoping
is used, what variables are visible during execution of the last function
called? Include with each visible variable the name of the function in
which it was defined.
a. main calls fun1; fun1 calls fun2; fun2 calls fun3.Answer:
var a = main ; var b = fun1 ; var c = fun2 ;var d,e,f = fun3
b. main calls fun1; fun1 calls fun3.Answer:
var a = main; var b,c = fun1; var d,e,f = fun3
c. main calls fun2; fun2 calls fun3; fun3 calls fun1.
Answer:
var a= main; var b,c,d = fun1 ;var e,f = fun3
d. main calls fun3; fun3 calls fun1.
Answer:
var a = main; var b,c,d = fun1; var e,f = fun3
e. main calls fun1; fun1 calls fun3; fun3 calls fun2.
Answer:
var a=main;var c,d,e=fun2; var b =fun1; var f= fun3
f. main calls fun3; fun3 calls fun2; fun2 calls fun1.
Answer:
var a=main; var b,c,d = fun1; var f= fun3;var e=fun2
12. Consider the following program, written in JavaScript-like syntax:
// main program
var x, y, z;
Answer :
function sub1() {
var a, y, z;
. . .
}
function sub2() {
var a, b, z;
. . .
}
function sub3() {
var a, x, w;
. . .
}
Given the following calling sequences and assuming that dynamic scoping
is used, what variables are visible during execution of the last subprogram
activated? Include with each visible variable the name of the unit
where it is declared.
a. main calls sub1; sub1 calls sub2; sub2 calls sub3.Answer:
a x w in sub3. b, z in sub2, y in sub1.
b. main calls sub1; sub1 calls sub3.Answer:
a x w in sub3, y z in sub1.
c. main calls sub2; sub2 calls sub3; sub3 calls sub1.Answer:
a y z in sub1, x w in sub3, b in sub2.
d. main calls sub3; sub3 calls sub1.Answer:
a y z in sub1; x w in sub3;
e. main calls sub1; sub1 calls sub3; sub3 calls sub2.Answer:
a b z in sub2, x w in sub3; y in sub1.
f. main calls sub3; sub3 calls sub2; sub2 calls sub1.Answer:
a y z in sub1; b in sub2; x w in sub3.
16. What is the referencing environment of a statement?
Answer :
The referencing environment of a statement is the collection of all variables that are visible in the statement. The referencing environment of a statement in a static-scoped language is the variables declared in its local scope plus the collection of all variables of its ancestor scopes that are visible.
17. What is a static ancestor of a subprogram? What is a dynamic ancestor of a subprogram?
Answer :
The static ancestors of a subprogram sub() are all the procedures in the program within which the procedure sub() is defined, i.e., the definition of the procedure sub() is nested. The definition of a procedure may be directly nested within only one procedure, called its static parent procedure. However, this static parent procedure may itself be nested within another procedure, and so on up to the main() program. All these procedures are considered to be static ancestors of the procedure sub(). Simply put, the static ancestors are those that strictly contain the subprogram in question.
The dynamic ancestors of a subprogram sub() are all the procedures called before sub() during the execution of a program, that have not yet finished executing. These are the procedures that are waiting for procedure sub() to finish executing before they can terminate. Simply put, dynamic ancestors are those that are called to reach the subprogram in question.
18. What is a block?
Answer :
Such vari-ables are typically stack dynamic, so their storage is allocated when the section is entered and deallocated when the section is exited
19. What is the purpose of the let constructs in functional languages?
Answer :
“let” introduces a new variable scope, and allows you to bind variables to values for that scope. It is often read as “let x be [value] in …”
20. What is the difference between the names defined in an ML let construct from the variables declared in a C block?
6. Given the following grammar and the right sentential form, draw a parse tree and show the phrases and simple phrases, as well as the handle.
Answer :
S → AbB bAc A → Ab aBB B → Ac cBb c a.
a. aAcccbbc
S -> AbB -> aBBbB -> aAcBbB -> aAccBbbB -> aAcccbbc
b. AbcaBccb
S -> AbB -> AbcBb -> AbcAcb -> AbcaBBcb -> AbcaBccb
c. baBcBbbc
S -> bAc -> baBBc -> baBcBbc -> baBcBbbc
7. Show a complete parse, including the parse stack contents, input string, and action for the string id * (id + id), using the grammar and parse table in Section 4.5.3.
Answer :
ln
8. Show a complete parse, including the parse stack contents, input string, and action for the string (id + id) * id, using the grammar and parse table in Section 4.5.3.
Answer :
aa
9. Write an EBNF rule that describes the while statement of Java or C++. Write the recursive-descent subprogram in Java or C++ for this rule.
Answer :
<while_stmt> -> WHILE ‘(‘ (<arith_expr> | <logic_expr>) ‘)’
<block> <block> -> <stmt> | ‘{‘ <stmt> {<stmt>} ‘}’
10. Write an EBNF rule that describes the for statement of Java or C++. Write the recursive-descent subprogram in Java or C++ for this rule.
Answer :
Assume the following non-terminals are given: <type>, <id>, <literal>, <assign>, <expr>, and <stmt_list>.
<for> -> for ‘(‘ [[<type>] <id> = <expr> {, [<type>] <id> = <expr>}] ; [<expr>] ; [<expr> {, <expr>}] ‘)’ ‘{‘ <stmt_list> ‘}’
16. What is the FIRST set for a given grammar and sentential form?
Answer :
FIRST( ) = {a => * a } (If => * , is in FIRST( ))
in which =>* means 0 or more derivation steps
17. Describe the pairwise disjointness test.
Answer : 
It is a test of non-left recursive grammar that indicates whether left recursion can be done. It requires the ability to compute a set based on the RHS of a given nonterminal symbol in a grammar.
18. What is left factoring ?
Answer : 
Left factoring is the action taken when a grammar leads backtracking while marking parsing.syntax tree.
Read More
19. What is a phrase of a sentential form ?
Answer :
A phrase is a subsequence of a sentential form that is eventually reduced to a single non-termin
20. What is a simple phrases of a sentential form ?
Answer : 
Simple phrases is just a phrases that takes a single derivation step from it’s root non-terminal node.

Problem Set Chapter 3 (Programming Language Concept)

Senin, 13 Oktober 2014
Posted by Andreas Kwan
14. Draw parse trees for the sentences aabb and aaaabbbb, as derived from the grammar of Problem 13
14aproblemset14bproblemset

15. Convert the BNF of Example 3.1 to EBNF. 
EBNF:
<program> → begin <stmt_list> end
<stmt_list> → <stmt> { ;  <stmt_list>}
<stmt> → <var> = <expression>
<var> → A | B | C
<expression> → <var> { (+|-) <var>}

16. Convert the BNF of Example 3.3 to EBNF. 
<assign> → <id> = <expr>
<id> → A | B | C
<expr> → <expr> {(+ | *) <expr>}
| <id>


17. Convert the following EBNF to BNF: S → A{bA} A → a[b]A 
S -> A | AX
X -> bA | bAX
A -> aA | abA
18. What is the difference between an intrinsic attribute and a nonintrinsic synthesized attribute?
An intrinsic attribute is an inherent characteristic of a terminal symbol in the grammar. So the value of the attribute is determined solely from the terminal symbol. A nonintrinsic synthesized attribute is an attribute of a non-terminal symbol in the grammar.
16. In denotational semantics, what are the syntactic and semantic domains? 
The mapping functions of a denotational semantics programming language specification, like all functions in math, have a domain and a range, the domain is called the syntactic domain, and the range is called the semantic domain.

17. What is stored in the state of a program for denotational semantics? 
The state of a program for denotational semantics is the value of all its current variable.

18. Which semantics approach is most widely known? 
The Denotational semantics is the most widely known semantics approach.

19. What two things must be defined for each language entity in order to construct a denotational description of the language? 
objects and functions 

20. Which part of an inference rule is the antecedent? 
The antecedent is the top part of an inference rule.

21. What is a predicate transformer function? 
wp(statement, postcondition) = precondition
A wp function is often called a predicate transformer, because it takes a predi-
cate, or assertion, as a parameter and returns another predicate.


22. What does partial correctness mean for a loop construct? 
If loop termination can be shown, the axiomatic description
of the loop is called total correctness. If the other conditions can be met but
termination is not guaranteed, it is called partial correctness.

computing the precondition for a while loop depends on finding a loop invariant, proving the
correctness of programs with while loops using axiomatic semantics can be difficult.


23. On what branch of mathematics is axiomatic semantics based? 
Axiomatic semantics, thus named because it is based on mathematical logic.

24. On what branch of mathematics is denotational semantics based?
mathematical objects (called denotations). 
14. What are the arguments both for and against the idea of a typeless language? 
Arguments for the idea:
Flexibility, Brevity of syntax. It places stricter controls on what objects can receive and send, so making it easier to enforce design strategies throughout the application. When there are errors in types, there can be picked up during precompilation or in the IDE.

Arguments against the idea:
Without type checking, there is no means to verify the integrity of the data without executing the application. The syntax of typed languages can be viewed as overly long or verbose. Typed languages aren’t as flexible as untyped languages, as data structures need to be cast to the correct type before another object can receive them. It is also said that by using typed languages, the compiler spends less time dynamically typing objects and so executes faster. However, this point is a grey area and that the main area of argument is how these language differences play out when designing applications where more then a few people are working on the code.




15. Are there any logic programming languages other than Prolog? 
Yes, there are Fortran, C++, COBOL, Algol.


16. What is your opinion of the argument that languages that are too complex are too dangerous to use, and we should therefore keep all languages small and simple? 
Languages are too complex are too dangerous to use because of its meaning itself. Ambiguous languages can cause trouble and misunderstanding among people.    So, we must keep it small and simple to avoid ambiguation and misunderstanding.

17. Do you think language design by committee is a good idea? Support your opinion. 
Language design by committee definitely has its advantages, with varying points of view from different domains, different programming backgrounds, and even different language backgrounds all contributing for the better of the language like ALGOL 58. Knowledge of Plankalkul enhanced ALGOL 58 because members from Europe were familiar with the language. Improvements like variable length identifiers and array dimensions were improved upon previous languages. Even though many arguments and conflicts arise, like whether to use a comma (European) or a period (American) for a decimal point took place, it is beneficial to have options. I think history would show that the best use of committees would be after a language has been invented and accepted. At this point a better evaluation is possible and committee members would be better conditioned to make improvements than initial discoveries.

18. Languages continually evolve. What sort of restrictions do you think are appropriate for changes in programming languages? Compare your answers with the evolution of Fortran.
A good deal of restraint must be used in revising programming languages. The greatest danger is that the revision process will continually add new features, so that the language grows more and more complex. Compounding the problem is the reluctance, because of existing software, to remove obsolete features.

16. In what way are Scheme and Common LISP opposites of each other? 
In its sizes, complexity, adn scoping(scheme: static scoping, Common LISP: both dynamic and static scoping).

17. What dialect of LISP is used for introductory programming courses at some universities?
Scheme

18. What two professional organizations together designed ALGOL 60?

The two professional organizations are Association for Computing Machinery (ACM) and GAMM

19. In what version of ALGOL did block structure appear?

ALGOL 60

20. What missing language element of ALGOL 60 damaged its chances for widespread use?

The lack of input and output statements with formatting

21. What language was designed to describe the syntax of ALGOL 60?The language was Backus Naur Form (BNF), which was Backus’s new notation for describing syntax of programming languages.


22. On what language was COBOL based?

FLOW-MATIC

23. In what year did the COBOL design process begin?

The beginning of COBOL similar to ALGOL 60 that was designed by a committee of people meeting for relatively short periods of time and in 1959, the design process of COBOL began and sponsored by the Department of Defense.

24. What data structure that appeared in COBOL originated with Plankalkül? 

Hierarchical data structure




        Nama saya Andreas Veronica, dari jurusan teknik informatika, dan seorang Binusian 2018.Saya sekarang akan mulai menceritakan proses pencarian tanda tangan yang begitu luar biasa. Pertama pertama waktu pertama kali mencari tanda tangan, saya merasa susah sekali karena masih perlu menyelesaikan tugas dari para pengurus dan juga di tambah dengan masalah saya tidak terlalu bisa bicara. Tetapi saya tetap semangat dan tidak mudah putus asa.
        Pencarian tanda tangan saya di mulai dari hari senin dengan Fredy Ferdinand Phan, Aditya Wirawan dan juga Lewis Loofis, saya juga mendapatkan tugas untuk mendapatkan tanda tangan dari mereka masing masing, tetapi saya tetap berusaha walaupun saya masih merasa tidak nyaman pada waktu itu. Pada hari jumat, setelah pulang dari kampus saya dan beberapa teman segera pergi ke secretariat BNCC dan ketemu dengan Chief Technology Officer Micheal Sean Hartono, kita juga mulai berbicara dan juga di suruh menceritakan pengalaman hidup diri sendiri dari lahir sampai sekarang, setelah 3 jam gitu kita pun selesai berbicara walaupun tidak mendapat tanda tangan, kita pun tidak berkecil hati, karena kita sudah mengenal pengurusnya, kita pun mulai berbicara dengan Nicolas yang pada saat itu duduk bersandaran di dinding ruangan tersebut. Nicolas juga berbagi pengalaman dia selama di BNCC dan memberitahu kita apa saja yang dia dapatkan dari BNCC yang tidak akan dia lupakan, dan akhirnya dia langsung memberikan kita tanda tangan tanpa tugas apapun, dan itulah tanda tangan pertama saya setelah 3 hari pergi ke secretariat BNCC berturut turut.
        Keesokan harinya kita pun pergi ke BNCC, dan saat itu saya sudah mulai nyaman dengan suasana di sana, kita juga berbicara dengan banyak sekali pengurus dan mendengar pengalaman mereka di BNCC yang memotivasi saya sebagai calon aktivis, dan saya juga mendapatkan beberapa tanda tangan dari mereka. Saya bermain di sana sampai larut malam, karena saat itu lagi malam minggu. Saya juga mengenal banyak calon aktivis sama seperti. Pada hari minggu saya juga tetap pergi ke secretariat BNCC walaupun pada saat itu tidak banyak pengurus yang pergi ke sana tetapi saya juga sangat senang karena pada hari ini saya berkenalan dengan pengurus dan mereka juga sharing pengalaman mereka, pada saat itu saya mulai mengerti tujuan dari tugas ini, bukan untuk mendapat tanda tangan, tugas ini hanyalah topic pembicaraan untuk mengenal pengurus pengurus dan sesama calon aktivis, tugas ini juga berguna untuk melihat siapa yang ada niat untuk menjadi seorang aktivis, dan selain itu juga mengembangkan relasi kita sebagai teman dekat untuk mewujudkan BNCC culture pertama, yaitu family atau keluarga. Untuk membuat kita memiliki rasa kekeluargaan dan bisa berkerja sama dengan baik ketika menjadi aktivis. Saat itu juga saya mulai tidak terlalu mementingkan tanda tangan melainkan mengenal para pengurus dan cavis cavis, saya juga mulai mengenal banyak pengurus dan cavis cavis dan bermain banyak jenis games dengan mereka, dan saya merasa asyik sekali di sana, dan pada sekitaran jam 9 malam, kita ketemu dengan Calvin dia meminta kita untuk berbicara tentang diri kita, kelemahan dan kelebihan kita, juga komitmen kita setelah menjadi seorang aktivis, itu juga menjadi salah satu momen yang paling saya ingat, karena saya akan memegang teguh komitmen itu setelah menjadi seorang aktivis. Pada akhirnya kita juga berbicara dengan Abraham dan setelah berapa puluh menit dia juga memberi kita tanda tangannya.
        Pada hari senin saya tetap pergi ke secretariat BNCC hingga malam hari, dan bermain berbicara di sana dengan sesama calon aktivis dan pengurus, sama seperti yang saya lakukan biasanya. Dan keesokan harinya saya tidak bisa pergi karena ada tugas kelompok yang harus dikerjakan dan kuliah sampai malam hari. Keesokan harinya saya pergi ke secretariat BNCC lagi, walaupun hanya 2 jam, saya juga sempat berkenalan dengan beberapa pengurus dan calon aktivis yang tidak pernah saya lihat kemarin, karena ada tugas kelompok yang harus di selesaikan, saya pulang lebih awal
        Sekian cerita proses pencarian tanda tangan saya, ini merupakan pengalaman berharga yang tidak bisa saya lupakan. Sekian dan terima kasih.

         

Problem Set Chapter 1 (Programming Language Concept)

Senin, 29 September 2014
Posted by Andreas Kwan
14. Describe the advantages and disadvantages of some programming environment you have used. 
- VB -
Advantages: Extremely easy to use, even for people who are not computer programmers. Can be used for low level programming on Microsoft computers. Excellent for writing little programs and pieces of programs.
Disadvantages: Completely locks you into using the Microsoft product line. Not a true Object oriented language although it claims to be. VB .Net is an object oriented language. Becomes overly complex and difficult to manage on very large programs. 
Advantages: Speed of the resulting application. C source code can be optimized much more than higher level languages because the language set is relatively small and very efficient. C programming language is very easier to learn. The main advantages of C language is that there is not much vocabulary to learn, and that the programmer can arrange for the program is very fast.



- C -
Advantage: C programming language is very easier to learn. The main advantages of C language is that there is not much vocabulary to learn, and that the programmer can arrange for the program is very fast.
Disadvantages: C does not have OOPS feature that's why C++ is developed. If you know any other modern programming language then you already know its disadvantages. There is no strict type checking (for example: we can pass an integer value for the floating data type).

15. How do type declaration statements for simple variables affect the readability of a language, considering that some languages do not require them? 
The use of type declaration statements for simple scalar variables may have very little effect on the readability of programs. If a language has no type declarations at all, it may be an aid to readability, because regardless of where a variable is seen in the program text, its type can be determined without looking elsewhere. Unfortunately, most languages that allow implicitly declared variables also include explicit declarations. In a program in such a language, the declaration of a variable must be found before the reader can determine the type of that variable when it is used in the program. 

16. Write an evaluation of some programming language you know, using the criteria described in this chapter. 
Readability
Java has some issues with simplicity with respect to readability. There is feature multiplicity in Java as shown in the textbook, example count=count + 1, count ++, count +=1 and ++count. Control statements in Java have higher readibility than BASIC and Fortran because they can use more complex conditionals like for loops
Writability
Java has a fair bit of orthogonality in that its primitive constructs can be used in various different ways
Reliability
Java uses a type checker at compile time which virtually eliminate most of the type errors during run time

17. Some programming languages—for example, Pascal—have used the semicolon to separate statements, while Java uses it to terminate statements. Which of these, in your opinion, is most natural and least likely to result in syntax errors? Support your answer. 
I personally feel that Pascal's usage of the semicolon to separate statement is rather counterintuitive but possibly it's because I learned the usage of the semicolon to terminate statement in C before I learned Pascal. Java consistency is more intuitive than the sructure of Pascal, it's easier to remember not to put a semi colon after a right brace than it is to have watch out for not putting it after each statement.


18. Many contemporary languages allow two kinds of comments: one in which delimiters are used on both ends (multiple line comments), and one in which a delimiter marks only the beginning of the comment (one line comments). Discuss the advantages and disadvantages of each of these with respect to our criteria.
The main disadvantage of using paired delimiters for comments is that it results in diminished reliability. It is easy to inadvertently leave off the final delimiter, which extends the comment to the end of the next comment, effectively removing code from the program. The advantage of paired delimiters is that you can comment out areas of a program. The disadvantage of using only beginning delimiters is that they must be repeated on every line of a block of comments. This can be tedious and therefore errorprone. The advantage is that you cannot make the mistake of forgetting the closing delimiter.

16. What is exception handling? 
Exception halding is the ability of a program to intercept run-time errors and other unusual conditions detectable by the program and take corrective measures then continue which is an obvious aid to reliability.

17. Why is readability important to writability? 
Readability is important to writability because programs that are difficult to read will be difficult to be written or modified.

18. How is the cost of compilers for a given language related to the design of that language?
The cost of compilers for a given language is related to the design of it because a languange that requires many run-time type checks will prohibit fast code execution, regardless of the quality of the compiler.

19.What have been the strongest influences on programming language design over the past 50 years?
Von Neumann architecture

20. What is the name of the category of programming languages whose structure is dictated by the von Neumann computer architecture? 
Imperative Language

21. What two programming language deficiencies were discovered as a result of the research in software development in the 1970s? 
Incompleteness of type checking and inadequacy of control statements (GOTO statements)

22. What are the three fundamental features of an object-oriented program- ming language? 
Encapsulation, Inheritance, and Polymorphism

23. What language was the first to support the three fundamental features of object-oriented programming? 
Smalltalk

24. What is an example of two language design criteria that are in direct conflict with each other? 
Reliability and cost of execution

Perkenalan

Kamis, 25 September 2014
Posted by Andreas Kwan
Hi, perkenalkan nama saya Andreas Veronica. Terserah anda mau manggil saya apa. Mahasiswa dari universitas yang sangat dibanggakan yaitu BINA NUSANTARA UNIVERSITY, A WORLD CLASS UNIVERSITY, yah saya sangat bangga sekali, saya membuat blog ini karena di minta oleh dosen keren saya dari WORLD CLASS UNIVERSITY itu, yang bernama Tri Djoko Wahjono. dulu saya juga pernah membuat blog dengan sekedar iseng dan sejenisnya gitu, tapi udah nggak main lagi sampai sekarang. yah mungkin itu saja perkenalanya

Trima Kasih
dan
Sampai Jumpa lagi
Welcome to My Blog

Mengenai Saya

Foto saya
Hanyalah salah satu manusia yang hidup di dunia ini

Popular Post

Blogger templates

Diberdayakan oleh Blogger.

Total Tayangan Halaman

- Copyright © BlogOfCommoners -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -