GATE | GATE-CS-2003 | Question 24
Which of the following statements is FALSE ?
(A) In statically typed language, each variable in a program has a fixed type
(B) In un-typed languages, values do not have any types
(C) In dynamically typed languages, variables have no types
(D) In all statically typed languages, each variable in a program is associated with values of only a single type during the execution of the program
This is an ambiguous question. “Untyped language” has no standard well-formulated definition, thus answering this question would be a bit difficult.
(A) Statically typed languages have one type associated to a variable, which is fixed once it has been deduced. Though, types could either be specified while code editing by the coder (Eg. C, Java), or it can be inferred at compile time (Eg. C++11, Haskell). Hence, after compile-time, every variable is bound to one fixed type, making this statement [TRUE]
(B) According to one definition, un-type languages store values in form of bits, thus neither variables nor values have any types associated to them. Hence this statement becomes [TRUE]
(C) Dynamically typed languages deduce types of values and bind them to the variables storing those values. Hence, values sure have fixed types, but variables don’t have fixed types bound to them. Although we can say that binding a type to a variable according to values makes them typeful, but they don’t have one fixed type. This statement has some ambiguity. [TRUE/FALSE]
(D) Same reason as of (A) [TRUE]
Hence, correct answer should be (C)
This solution is contributed by Vineet Purswani.
Quiz of this Question
Attention reader! Don’t stop learning now. Practice GATE exam well before the actual exam with the subject-wise and overall quizzes available in GATE Test Series Course.
Learn all GATE CS concepts with Free Live Classes on our youtube channel.