e = expression
f = factor
start -> e ';'
e -> e +/- f | f
f -> f */ / atom
| atom
atom -> string
| int
"Bob" / 26 ; //could be valid string if you want it to be
it is syntactically valid but semantically drugs. - answers✔✔Generate a Grammar that is Syntactically
Valid, but show an input string that would not type check.
(test question from subprograms slide part 2)
Conversion between primitive types and the corresponding wrapper classes is automatic.
ie. int a = 10;
Integer b = a; //Auto boxing (int to Integer)
int c = b; // Unboxing (Integer to int)
ie.
Primitive Data Types:
These are the basic data types in Java such as 'int' , 'double', 'char', and 'boolean'. They are not objects
and do not belong to any class. They are stored efficiently and have a lower memory footprint.
,Wrapper Classes: for every primitive data type in Java, there is a corresponding wrapper class, like
'Integer' for 'int', 'Double' for 'double', 'Character' for 'char', and 'Boolean' for 'boolean'. These classes
encapsulate the primitive data type in an object allowing them to be used in places where only objects
can be utilized.
Auto Boxing - is the process where the Java compiler automatically converts the primitive type into its
corresponding wrapper class object. For example, when you type int, to - answers✔✔What is "auto-
boxing"
Has to be an object because Java weaves it into the bytecode that way. Under the hood, when calling a
generic, the generic is called an object type. Thus, it has to be that way or the program does not work -
mathematically required. The problem is objects are generally bigger and slower. Instead of using ALU -
you have to make an object to put in a variable which all takes time.. size of object + heap + field of
actual 32 bits and something to access (getter/setter/caller) which all takes up some space.
Generic is called - answers✔✔What is the potential negative about "auto boxing" in relation to Java?
Think int -> Integer
(Lec 10.19.23) Subprograms 3
The form of its expressions, statements, and program units. - answers✔✔The syntax of a programming
language is?'
ref ch 3
The meaning of those expressions, statements, and programming units. - answers✔✔The semantics of a
programming language is?
, ref ch 3
A well-designed programming language, semantics should follow directly from syntax; that is, the
appearance of a statement should strongly suggest what the statement is meant to accomplish. -
answers✔✔Why are syntax and semantics closely related?
ref ch 3
sentences or statements. - answers✔✔Strings of a language are called?
lowest-level of syntactical units. They include its numeric literals, operators, and special words, etc.
One can think of programs as strings of lexemes rather than characters - answers✔✔What are Lexemes?
ref ch 3
Identifiers - when partitioned into groups (ie. names of variables, classes, etc) - answers✔✔What are
Identifiers?
ref Ch 3
Each lexeme group that is represented by a name or token. So, a token of a language is a category of its
lexemes. - answers✔✔What are Tokens?
ref ch 3
Grammars are formal language-generation mechanisms. They commonly are used to describe the syntax
of a programming language - answers✔✔What is a grammar?
ref ch 3