Answer:
a)Firmware Computers and Virtual Computers
<u>Firmware Computers-</u>A type of computer program that offers low-level device-specific hardware control.Once installed, the firmware is generally altered rarely and only by the manufacturer's updates. Firmware loss can often lead to the loss of function of a hardware device depending completely on the scenario.
<u>Virtual Computers-</u>The most common purpose of the software is to describe a program/piece of data to be changed, viewed or otherwise interacted by the user most often.A software or firmware upgrade allows a continuous change — generally a feature enhancement, performance enhancement, or error correction
b) Early binding and Late Binding
<u>Early binding-</u>The compiler matches the function call at compile time in early binding with the right function definition. It can be called as Compile-time Binding/Static Binding. The compiler defaults to the feature definition called during the moment of compilation. So, because of early binding, all the feature calls you've studied up to now.
<u>Late binding-</u>The compiler matches the function call at run-time with the right function definition in the event of late binding. It is also referred to as Run-time Binding.
The compiler defines the object type at run-time in late binding and then checks the function definition with the function call.
c) BNF and EBNF
<u>BNF(Backus – Naur form)-</u>It is used to officially describe a language's grammar, so there is no discrepancy or ambiguity about what is permitted and what is not. In reality, BNF is so unambiguous that there is a lot of mathematical theory around this kind of grammar, and you can effectively build a parser mechanically for a language with a BNF grammar.
<u>EBNF(Extended Backus–Naur form)</u>-It is used to convey a grammar that is context-free. EBNF is used to describe formally a formal language such as a language for computer programming. This is extension metasyntax notation of the fundamental Backus – Naur form (BNF).