NOMENCLATURE
ABBREVIATIONS
JVM Java
Virtual Machine
OOP Object Oriented
Programming
CFG Context Free
Grammar
RDP Recursive
Descent Parsing
JLS Java
Language Specification
CAN Contextually
Ambiguous Names
AIF Ambiguous
Inherited Fields
MIF Multiply
Inherited Fields
VME Virtual Machine
Errors
FQN Fully Qualified
Names
API Application
Programming Interfaces
WWW World Wide Web
LAN Local
Area Network
Internet Network
of Computers connected in the WWW.
internet
Any set of interconnected computers.
DEFINITIONS
Procedural Programming
Procedural programming is defined as “Programming paradigm characterized
by the use large sections of linear code. Very little structure is evident
in the code itself. Flow charts are usually required to understand the program
logic”. It is the simplest programming paradigm, useful to bring order
in the maze of algorithms available to solve a particular problem numerically.
Supported by all modern programming languages by facilities for passing
arguments to and returning values from functions. This is the elementary
condition of programming rather than a method of choice.
OOP
Object-oriented programming is a technique for programming–a paradigm for
writing ‘‘good’’ programs for a set of problems. This style of programming
supports the object concepts such as Data Abstraction, Inheritance, Encapsulation,
Data Hiding, etc. Object-Oriented Programming (OOP) is different from procedural
programming languages (C, Pascal, etc.) in several ways. Everything in
OOP is grouped as "objects". OOP, defined in the purest sense, is implemented
by sending messages to objects.
Object
An object can be considered a "thing" that can perform a set of activities.
The set of activities that the object performs defines the object's behavior.
The object's interface consists of a set of commands, each command performing
a specific action. An object asks another object to perform an action by
sending it a message. The requesting (sending) object is referred to as
sender and the receiving object is referred to as receiver. Control is given
to the receiving object until it completes the command; control then returns
to the sending object.
Language Specification
Language Specification
is defined as “The Art of generating a language by
1. Selecting an appropriate character set.
2. Defining the phrase structure with a context-free
grammar (BNF, EBNF) or syntax diagrams.
3. Defining the tokens using a context-free grammar.
4. Defining the contextual constraints. (Scope Rules
& Type Rules )
5. Defining the semantics of the language.”
Binary Compatibility
Binary Compatibility is defined as “The ability of a file (any form of
output of a compiler) to generate the same execution in different environments
or operating systems.” In Java, Binary Compatibility is accomplished by
generation of a class file. This class file runs on Java Virtual Machine
irrespective of the Operating system.
Virtual Machine
Virtual Machine is “any non-physical construct that runs within the confines
of another real (physical) or virtual machine”. For example, an operating
system is a type of virtual machine that runs on a computer's BIOS software,
which runs on a physical computer. Any piece of software that runs on an
operating system (or within the confines of another piece of software) can
also be considered a virtual machine. The term and idea of a virtual machine
has been used by Sun Microsystems in its description of a program launched
by a browser that will run Java programs. Virtual machine also describes
specific programs that mimic a computer within a computer, or a simulation
of a physical device represented by computer software.
Compiler Designer
Compiler Designer
is defined as “The programmer using the Language Specification and develops
a compiler which validates the input programs based on the specification
standards and generates the output as specified in the standard”.
Compiler User
Compiler user is defined as “The programmer who uses the compiler (developed
by the compiler designer) and develops system and application programs”.
Compiler user could be considered as the end user in the compiler generation.
Majority of the programming community belong to this category.