Programming Language Concepts
Back at it again. This time we’ll cover some common questions/answers you may encounter when asked about:
- Names, Bindings and Scopes
- Data Types
401. Names are also called _______.
– Identifiers
402. Why are names also called identifiers?
– Because they are used to identify a variable, a function, class or other program constructs.
403. Fortran I names had a maximum name length of _____.
– Six
404. COBOL names had a maximum length of ______.
– 30
405. Name two languages that don’t have a name length limit.
– Java and C#
406. How are scalar, arrays and hash names defined in Perl?
– $, @ and %
407. What do the @ and @@ symbols represent in Ruby?
– Class Instance and Class Object
408. What is a keyword?
– A word that’s special only in certain context
409. What is a reserved word?
– A special word that cannot be used as a user-defined name.
410. True or False? Keywords can be overwritten by user-defined names.
– True
411. What is a variable?
– An abstraction of memory
412. What does the address variable characteristic represent?
– The memory address with which the variable is associated with
413. What does the following variable characteristic represent: value?
– The contents of the location with which the variable is associated.
414. True or false? A variable may have different addresses at different times during execution.
– True
415. If two variable names can be used to access the same memory location, they are called _______.
– aliases
416. How are aliases created?
– Pointers and reference variables
417. What does the variable’s type determine?
– The range of values of the variable
– The set of operations for that type
– The precision
418. What is an abstract memory cell?
– Way of thinking about the physical cell or collection of cells associated with a variable
419. A ________ is an association, such as between an attribute and an entity, or between an operation and a symbol.
– binding
420. The ______ ______ is the time at which a binding takes place.
– binding time
421. Describe what takes place during the language design time.
– Program structure (syntax)
– Primitive types and meanings (semantics)
– i.e. binding of * to the multiplication operator
422. Describe what takes place during the language implementation time.
– Coupling of I/O to OS
– Maximum sizes of stack of heap
– Precision of fundamental types
– i.e. binding of floating type to an internal representation in C
423. Describe what takes place during the compile time.
– Map high-level language constructs to machine code.
– i.e. binding of a variable to a particular type in C or Java
424. Describe what takes place during the link time
– Multiple object codes (machine code files) and libraries are combined into one executable
– i.e. binding a library subprogram to subprogram’s code
425. Describe what takes place during load time.
– OS loads the executable in memory
– Assign machine addresses to static data
– i.e. binding of a C static variable to a memory cell
426. Describe what takes place during run time.
– The time during which a program runs
– i.e. bindings of non-static variables in a subprogram to a memory cell.
427. A binding is ______ if it first occurs before run time and remains unchanged throughout program execution.
– static
428. A binding is ______ if it first occurs during execution or can change during execution of the program.
– dynamic
429. Before a variable can be referenced in a program, it must be bound to a ____ _____.
– data type
430. Give an example of an explicitly declared static type binding.
– int i;
431. Give an example of an implicitly declared static type binding.
– Fortran: I, J, K, L, M, N implicitly declare to be integer type.
432. True or False? Type inference is a way to implicitly declare a binding.
– true (i.e. var sum = 0; or var total = 0.0;)
433. True or False? Dynamic Type Binding uses declarations.
– False
434. Give an example of dynamic type binding.
– apple = “Apple”;
apple = 17.3;
435. What is allocation?
– The binding of a variable to a memory cell that is taken from a pool of available memory.
436. What is deallocation?
– the process of unbinding a variable and placing the memory cell back in the pool of available memory.
437. What is the lifetime of a variable?
– The time during which the variable is bound to a specific memory location.
438. What are the four categories of variables by lifetime?
– Static, stack-dynamic, explicit heap-dynamic and implicit heap-dynamic
439. What are the 3 main areas in memory that are allocated for variables?
– Static area, stack and heap
440. True or False? Static variables are bound to memory cells before program execution begins and remain bound to those same memory cells until termination.
– True
441. What is the lifetime of a static variable?
– Entire program execution
442. Static variables can be used as global variables and ____ _____ variables.
– history sensitive
443. True or False? In early Fortran, all variables were static.
– True
444. True or False? In C and C++, global variables are always static.
– True
445. Describe what is meant by a history sensitive variable.
– local variables that are declared static
446. True or False? A program that has only static variables can support recursive subprograms.
– False
447. In stack-dynamic variables, the type is ______ bound.
– statically
448. In stack-dynamic variables, the storage is bound when their declarations are _______.
– elaborated
449. What is meant by elaboration in declarations?
– the storage allocation and binding process that takes place when the code containing the declaration is executed.
450. Stack dynamic variables are allocated from the _____ _____ _____.
– run time stack
451. True or False? Programming languages that allow stack-dynamic variables allow recursion.
– True
452. For stack-dynamic variables the size of local variables is determined at _____ time.
– run
453. True or False? Stack-dynamic variables are history sensitive.
– False
454. What is the heap?
– Unstructured pool of memory cells
455. What is the lifetime of explicit heap-dynamic variables?
– from explicit allocation to explicit deallocation
456. The explicit heap-dynamic variables can only be accessed through ________ or ______ variables.
– pointer or reference
457. Explicit heap-dynamic variables are created either by an _______ or a call to a ______ _______.
– operator (new in C++) or library function (malloc in C)
458. Objects in Java are ______ heap-dynamic and are accessed through _______ variables.
– explicit
– reference
459. Java relies on ______ _______ to destroy a heap-dynamic variable.
– garbage collection
460. In C#, explicit heap-dynamic and stack-dynamic objects are _______ deallocated.
– implicitly
461. When are implicit heap-dynamic variables bound to heap storage?
– when they are assigned values
462. What is the lifetime of implicit heap-dynamic variables?
– from implicit allocation to implicit deallocation
463. What is the scope of a variable?
– the range of the statements in which the variable is visible
464. A variable is _____ if it can be referenced.
– visible
465. What is a local variable?
– a variable declared in a program unit (subprogram) or block.
466. What is a nonlocal variable?
– a variable visible in a program unit or block, but not declared there.
467. What is a global variable?
– a special category of nonlocal variables
468. What is static scoping?
– the scope of a variable can be determined prior to execution at compile time
469. What is dynamic scoping?
– the score of a variable is determined at run time.
470. Static scope is sometimes referred to as _____ ______.
– lexical scope
471. True or False? In languages that use static scoping, variable declarations can be hidden.
– True
472. Variables within a block are typically _____ _______.
– stack dynamic
473. In python, a global variable can be referenced in a function, but it can be modified there only if the function has declared it to be _____.
– global
474. True or False? Dynamic scope is based on the order in which subprograms are called, not their nesting.
– True
475. True or False? Scope and Lifetime are different concepts?
– True
476. What is the referencing environment of a statement?
– the collection of all names that are visible in the statement.
477. What is an active subprogram?
– Execution of the subprogram has begun and is not yet terminated.
478. What is a named constant?
– A variable that is bound to the same value throughout its lifetime
479. True or False? The binding of values to named constants can only be static.
– False. It can be static or dynamic
480. The binding of a variable to a value at the time it is bound to storage is called _______.
– initialization
481. What does a data type define?
– A collection of values and a set of operations on those values.
482. True or False? In the early languages, all data structures had to be simulated with arrays.
-True
483. ______ _______ ______ were one of the most important advances and paved the way for abstract data types, classes, and object-orientation.
– User-defined types
484. Data types are either _____ or ______ (scalar).
– structured or unstructured
485. What is a variable descriptor?
– The collection of attributes of a variable
486. What are descriptors used for?
– Type checking and allocation and deallocation operations.
487. Data types that are not defined in terms of other types are called _____ ____ _____.
– primitive data types
488. ______ is the most common primitive numeric type
– Integer
489. What are the four signed integer types provided by Java?
– byte, short, int and long
490. True or False? C++ and C# have unsigned integer types.
– True
491. What are the three ways to store negative integers?
– Sing magnitude notation, two’s complement notation, and one’s complement notation
492. What are the two floating-point types included in most Programming Languages?
– float and double
493. Most larger computers that are designed to support business applications have hardware support for the _____ data types.
– decimal
494. True or False? C89 has a Boolean type
– False
495. How is the Boolean type represented in C89
– nonzero numbers are true and zero is false
496. True or False? C99 and C++ have a Boolean type
– True
497. True or False? The Boolean type is stored in one bit.
– False, one byte since the byte is the lowest retrievable storage unit.
498. _____ was the first widely used language to use the Unicode character set.
– Java
499. True or False? Python has a character type.
– False, instead characters are treated as strings of length 1
500. Name a few of the most common string operations.
– Assignment, Concatenation, Substring Reference, comparison, and pattern matching
501. How are character strings stored in C and C++?
– char arrays
502. How do you mark the end of a string in C?
– With the null character
503. In Java, strings are supported by two classes: _____ and ______.
– String and StringBuffer
504. True or False? Java’s String class is mutable.
– False. StringBuffer is mutable.
505. True or False? In Python, string is a primitive type and strings are immutable.
– True
506. Pattern matching in Perl, JavaScript, Ruby and PHP is based on _______ ________.
– regular expressions
507. What is a static-length string?
– the length of a string is fixed (i.e. Java’s String object)
508. What is a limited dynamic-length string?
– the length of a string can vary up to a declared and fixed maximum set by the variable’s definition.
509. What is a dynamic-length string?
– the length of a string can vary with no maximum
510. What is an enumeration type?
– specifies all possible values of the type by providing a list of enumeration constants.
511. ____ and ______ were the first widely used languages to include an enumeration data type.
– C and Pascal
512. Is the following example a legal operation on this C++ enumeration type? myColor=4;
– No, but casting would make it legal (i.e. myColor=(colors) 4;
513. True or False? In Java, enumeration constants are instances of the class.
– True
514. A Java enumeration is implicitly a ______ of the Enum class.
– subclass
515. True or False? A Java enumeration inherits methods from the Enum class.
– True
516. What does the ordinal method do?
– Returns the numeric value of an enumeration object.
517. True or False? PHP and JavaScript inherit from the Enum class.
– False, PHP and JavaScript do not have enumeration types at all.
518. What are the two properties of an array data structure?
– All elements have the same type
– Elements are accessed by position relative to the first element
519. References to an array element are specified using __________ ___________.
– subscript expressions
520. How are array elements accessed?
– by giving the name of the array and a selector that specifies the position of the element
521. The position of an element is specified by ________ or ___________.
– subscripts or indices
522. What are the two distinct types involved in an array type?
– element type and type of the subscripts
523. The type of the subscript is often _______.
– integer
524. In Perl, array names should begin with _____ but the _____ is used when accessing an element in an array.
– @
– $
525. True or False? Negative subscripts are allowed in Perl.
– True
526. A reference to a nonexistent array element in Perl yields _____.
– undef
527. The binding of the subscript type to an array variable is usually ______.
– static
528. True or False? The lower bound of the subscript range is often implicit.
– true
529. What are the five categories that arrays can be divided into?
– Static, Fixed stack-dynamic, stack-dynamic, fixed-heap dynamic and heap-dynamic
530. What is a static array?
– when subscript ranges are statically bound and storage allocation is static
531. Arrays declared in C & C++ functions that include the _____ modifier are static.
– static
532. What is a fixed stack-dynamic array?
– Subscript ranges are statically bound but the allocation is done at declaration time. Use a static modifier and a fixed size.
533. What is a stack-dynamic array?
– Subscript ranges are dynamically bound, and the storage is dynamically allocated.
534. What is a fixed heap-dynamic array?
– Subscript ranges are dynamically bound, and the storage allocation is dynamic, but they are both fixed after storage is allocated. Storage is allocated on the heap. i.e. malloc and free in C or new in C++
535. True or False? In Java all arrays are fixed heap dynamic arrays.
– True, once created they keep the same subscript ranges and storage
536. What is a heap-dynamic array?
– subscript ranges are dynamically bound, and the storage allocation is dynamic, and can change any number of times during the array’s lifetime. i.e. C#’s ArrayList class or JavaScript arrays
537. A reference to a nonexistent element in a JavaScript array yields _______.
– undefined
538. Arrays of string can be initialized by a list of _____ ______.
– string literals
539. True or False? When an initializer is present, the length of the array can be omitted.
– True
540. True or False? An array operation is performed on a single array element.
– False, it’s performed on an entire array.
541. A true multidimensional array is called a _________ __________.
– rectangular array
542. What is a jagged array?
– Lengths of rows are not the same
543. True or False? Java supports rectangular arrays
– False, only jagged arrays
544. True or False? Multidimensional arrays must be mapped onto the linear structure of the computer memory.
– True
545. What are the two common ways to map multidimensional arrays onto the linear structure of the computer memory?
– Row-major order and column-major order
546. What is the access function of a one-dimensional array?
– address(list[k]) = address(list[0]) + k * element_size
Want more?
P1. 104 Programming Language Q&A
P2. 95 Programming Language Q&A
P3. 123 Programming Language Q&A
P4. 77 Programming Language Q&A
P5. 146 Programming Language Q&A
P6. 94 Programming Language Q&A
P7. 141 Programming Language Q&A