Senin, 08 April 2013

Concepts of Programming Languages - Chapter 7

Review Questions
2. Operator that has three operands.
3. Operator that precede its operands.
4. Exponentiation operator.
11. Multiple use of an operator.
18. Short circuit evaluation is one in which the result is determined without evaluating all of the operands and/or operators.
25. Ada doesn't allowed mixed mode assignment.
26. Mixed mode assignment are allowed in Java only if the required coercion is widening.

Problem Set
5. No, it shouldn't be included in other language because in C there are some characteristics assigning operations that available just in C language, in case that the assigning operator in C make it unique and different from the other language.
6. No, it shouldn't be included in other language because in C there are some characteristics single operand assignment forms that available just in C language, in case that the single operand assignment forms in C make it unique and different from the other language.
a. ( ( (a*b)1 -1 )2 +c)3
b. ( ( ( a* (b-1)1 )2 /c)3 mod d)4
c. ( ( ( ( ( (a-b)1 /c)2 (d*e)3 /a)4 -3)5 &)6
d. (- ( ( (a or c)1 (d and e) )2 = )3 )4
e. ( ( ( (a>b)1 xor c )2 or (d<=17) )3
f. (- (a+b)1 )2
15. Because C is a structured programming language that makes C must read every line on that code, so if there is a simple error it will be detected immediately, in that case it makes C difficult to eliminate its functional side effect.
21. Because Java is using associativity rules of the language that makes Java read an expression from left to right.

Concepts of Programming Languages - Chapter 6

Review Questions
1. Collection of the attributes of a variable.
Should strings be simply a special kind of character array or a primitive type ?
Should strings have static or dynamic length ?
5. Ordinal is one in which the range of possible values can be easily associated with the set of positive integers. Enumeration is one in which all of the possible values, which are named constants, are provided, or enumerated, in the definition. Subrange is a contiguous subsequence of an ordinal type.
What types are legal for subscripts ?
Are subscripting expressions in element references range checked ?
When are subscript ranges bound ?
When does array allocation take place ?
Are ragged or rectangular multidimensioned arrays allowed, or both ?
Can arrays be initialized when they have their storage allocated ?
What kinds of slices are allowed, if any ?
11. The subscript values need not be contiguous.
12. Ruby and Lua.
17. In 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. In 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.
31. Union is a type whose variables may store different type values at different times during program execution. Free union is the unions in C and C++ which are allowed complete freedom from type checking in their use.  Discriminated union is a union with a discriminant.
33. Yes, they are
What are the scope and lifetime of a pointer variable ?
What is the lifetime of a heap-dynamic variable (the value a pointer references) ?
Are pointers restricted as to the type of value to which they can point ?
Are pointers used for dynamic storage management, indirect addressing, or both ?
Should the language support pointer types, reference types, or both ?
36. Dangling pointers and Lost Heap-Dynamic variables
38. A C++ reference type variable is a constant pointer that is always implicitly dereferenced, used primarily for the formal parameters in function definitions.
44. Type error is the application of an operator to an operand of an inapropriate type.
50. Name type equivalence means that two variables have equivalent types if they are defined either in the same declaration or in declarations that use the same type name.

Problem Set
2. A negative integer could be stored in sign-magnitude notation, in which the sign bit is set to indicate negative and the remainder of the bit string represents the absolute value of the number. Sign-magnitude notation, however, doesn't lend itself to computer arithmetic. Most computers now use a notation called twos complement to store negative integers, which is convenient for addition and subtraction. In twos-complement notation, the representation of a negative integer is formed by taking the logical complement of the positive version of the number and adding one. Ones-complement notation is still used by some computers. In ones-complement notation, the negative of an integer is stored as the logical complement of its absolute value. Ones-complement notation has the disadvantage that it has two representations of zero.
7. C++ pointer used in the same way as address, can point at any variables, C++ reference type variable is a pointer that is implicity dereferenced and constant.

8. in C++ is a constant, must be initialized with the address of variable, after initialization a variable that pass by reference can't be set to the other variable, in Java variable can be assigned to reference, and it isn't constant.

21. Dynamic type better than static type to detect error in compile time than in run time.
22. Take deallocation of heap dynamic variable out, because if a program can''t deallocate heap dynamic variable explicitly, it won't be any dangling pointer.

Minggu, 07 April 2013

Concepts of Programming Languages - Chapter 5

Review Question
1. Are name case sensitive ? Are the special words of the language reserved words or keywords ?
4. Two or more variables name that can be used to access the same memory location.
5.  Two pointers variables are aliases when they point to the same memory location.
7. Binding is an association between an attribute and an entity. Binding time is the time which binding takes place.
9. Static binding if it first occurs before run time begins and remain s unchanged throughout program execution Dynamic binding if the binding first occurs during run time or can change in the course of program execution.
18. Such variables are typically stack dynamic, so their storage is allocated when the section is entered and deallocated when the section is exited.

Problem Set
1. Student , Student123 because in C we can't use _ ,etc. and begin it with number for the variables name.
4. Because a variable must have data type before it assigned. Range int type in Java -2,147,483,648 to +2,147,483,648.
1 -> a,b,c (definition 1)
2 -> a (definition 1) b (definition 2) c,d,e (definition 3)
3 -> a (definition 1) b,c d (definition 2)
4 -> a,b,c (definition 1)

Minggu, 31 Maret 2013

Concepts of Programming Languages - Chapter 3

Review Questions
1.       Syntax is the form of programming language expressions, statements, and program units. Semantics is the meaning of those expressions, statements, and program units.
7.    Brackets, braces, multiple-choice options.
9.    State the static semantic rules of the language.
12.  To provide complete descriptions of the syntax and static semantics of programming languages.
14.  The individual steps in the execution of machine language and the resulting changes to the state of the machine are too small and too numerous, and the storage of a real computer is too large and complex.
16.  Syntactic domain is the domain that syntactic structures are mapped, semantic domain is the range of the map.
18.  Denotational semantics
27.  Loop invariant is the corresponding step in the axiomatic semantics of a while loop is finding an assertion. Example: I is the loop variant
P=> I
{I and B} S{I}
(I and (not B)) => Q
28.  To treat the process of producing a weakest precondition as a function, because it takes a predicate, or assertion, as a parameter and returns another predicate.
29. Total correctness is if loop termination can be shown, partial correctness if the other conditions can be met but termination isn’t guaranteed.

Problem Set
1.       A syntax error is an error in the typing of the code or statement, and a semantic error is a logic error.
scanf(%d,&a); >> syntax error because in %d it should be start and end with “
char asd[50]; char asd2[25]; printf(“%d”,asd); >> logic error because it is a string data type but it print out with integer data type

<assign> <id> = <expr>
<id> A | B | C
<expr> <expr> + <term>
             |   <term>
<term> <term> * <factor>
              |   <factor>
<factor> ( <expr> )
                |   <id>

13. S->ab | aSb
<program> -> begin <stmt_list> end
<stmt_list> -> <stmt>
| <stmt> ; <stmt_list>
<stmt> -> <var> = <expression>
<var> -> A | B | C
<expression> -> <var> {(+|-) <var>}

<expression> -> <var> {(+|-) <var>}
<assign> -> <id> = <expr>
<id> -> A | B | C
<expr> -> <expr> {(+|*) <expr>}
| <id>

18. Fully attributed parse tree is a condition of a parse tree when all the attribute values in it have been computed.

a = 2 * ( b – 1 ) – 1 { a > 0 }
a = 2b – 2 – 1 { a > 0 }
a = 2b – 3 { a > 0 }
2b – 3 > 0
2b > 3
b > 3/2

b = ( c + 10 ) / 3 { b > 6 }
b = c / 3 + 10 / 3 { b > 6 }
c / 3 + 10 / 3 > 6
c + 10 > 18
c > 8

a = a + 2 * b ? 1 { a > 1 }
a = a + 2b – 1 { a > 1 }
a + 2b – 1 > 1
2b > 2 – a
b > 1 – a/2

x = 2 * y + x ? 1 { x > 11 }
x = 2y + x – 1 { x > 11 }
2y + x – 1 > 11
2y > 12 – x
y > 6 – x/2

a = 2*b+1;
b = a – 3
{ b < 0 }
a – 3 < 0
a < 3
a = 2 * b + 1 { a < 3 }
2b + 1 < 3
2b < 2
b < 1

a = 3*( 2*b+a );
b = 2*a – 1
{ b > 5 }
2a – 1 > 5
2a > 6
a > 3
a = 3 * ( 2 * b + a) { a > 3 }
3 * ( 2b + a ) > 3
2b + a > 1
2b > 1 – a
B > ( 1 – a ) / 2

Minggu, 10 Maret 2013

Concepts of Programming Languages - Chapter 2

Review Question

7. John Backus
8. John Mauchly
10. The Independent compilation of subroutines
12. Fortran IV
13. Fortran 77
17. Scheme
23. 1959
27. It was easy for beginners to learn, especially those who were not science oriented, and its smaller dialects can be implemented on computers with very small memories.
30. Class construct
34. For, switch
37. Facts, rules
44. Smalltalk
45. Traditional Object-oriented programming
52. Params
65. XML data document and XSLT document
68. Servlet

Problem Set

1. Explicit type declarations for variables, logical if construct, capability of passing subprograms as parameters to other subprograms

2. Short code was one of the successful stored program electronic computers, transferred to UNIVAC I computer, consist of coded versions of mathematical expressions that were to be evaluated. Short code wasn’t translated to machine code, it was implemented with a pure interpreter. It simplified the programming process, but at the expense of execution time. Because of that hand calculator is 50 times faster than short code

9. The purpose is to make easier for declaring a variable

10. Introducing concept of block structure, pass by value and pass by name to subprograms were allowed, procedures were allowed to be recursive, stack-dynamic arrays were allowed

13. C is well suited for a wide variety of applications

15. Yes, there are like VB, SQL

24. Because nowadays network users are increase day by day, because of that reason people want to make scripting languages for helping web programmer to handle that case1

25. Java servlet is server-side Java program modules that process and answer client requests and implement the servlet interface

Minggu, 03 Maret 2013

Blog's purpose post entry

Hi , I'm Felix Kantio Hardhy Saputra (1601234751) from class 02PCT.

I make this blog especially for submit my assignment to Mr. Tri Djoko Wahjono for Concept of Programming Languages 02PCT class.

Concepts of Programming Languages - Chapter 1

Review Questions

1.       Because it can increase our capacity to use different constructs in writing programs, enables us to choose languages for projects more intelligently, and makes learning new languages easier.

2.       It makes us better in understanding of the significance of implementation, in use of languages that are already known.

3.       Fortran

4.       COBOL

5.       LISP

6.       C

7.       Disadvantage of having too many features are make the users confused about what features will they used for solving problems, and  not all of the features will be used by the user

8.       Operator overloading means that a single operator symbol has more than one meaning, it can lead to reduced readability if users are allowed to create their own overloading and don’t do it sensibly, and it would make the program more confusing for both the author and the program’s reader.

9.       In case structured data type (record and array), record can be returned from function but arrays can’t. Parameters are passed by value, unless they are arrays, in case they are, in effect, passed by reference.

10.   ALGOL 68

Problem Set

1.       Yes, because when we want to make an algorithmic step for a program at least we can tell what kind of function will be used by us to make the program, so we can create and test the program as soon as we can after we have done with the algorithm.

2.       Ada Lovelace

3.       Disadvantages of multiple programming languages are sometime we could forget or confused in using the function in some type of languages, lack of time to study all of languages

4.       Scientific applications support for scientist and for complicated calculation, but can be used in business too sometimes, but languages for business applications support for economical purpose and can’t be used by scientist for calculating formulas and kinds of complicated calculation.

5.       Languages for artificial intelligence are developed in type of software and mostly used for programming an artificial things, language for web software are designed for make web content, HTML type.

6.       Reliability, because when a program is said to be reliable it include overall criteria of a good program such as simplicity, orthogonality, readability, writability, etc. And it has a lower cost