0% found this document useful (0 votes)
29 views2 pages

Assignment 01

Procedural languages are structured around procedures and functions that define steps, while object-oriented languages are structured around objects that encapsulate data and functions. Bytecode is an intermediate representation generated by compilers that is executed by the Java Virtual Machine, making Java programs platform independent. The JVM abstracts hardware and operating systems to provide a consistent execution environment, interpreting or compiling bytecode into native machine code. While C is generally faster than Java due to direct compilation, Java offers advantages in platform independence and ease of development through its managed memory model.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views2 pages

Assignment 01

Procedural languages are structured around procedures and functions that define steps, while object-oriented languages are structured around objects that encapsulate data and functions. Bytecode is an intermediate representation generated by compilers that is executed by the Java Virtual Machine, making Java programs platform independent. The JVM abstracts hardware and operating systems to provide a consistent execution environment, interpreting or compiling bytecode into native machine code. While C is generally faster than Java due to direct compilation, Java offers advantages in platform independence and ease of development through its managed memory model.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

a) Procedural Language vs.

Object-Oriented Language:

Procedural Language:

In a procedural programming language (e.g., C, Pascal), programs are structured


around procedures or functions.
It focuses on procedures, routines, and functions that define the steps to be taken
and the order in which they occur.
Data and functions are separated, and data is usually manipulated by passing it as
arguments to functions.
It follows a top-down approach, where the program is broken down into smaller
procedures or functions.
Object-Oriented Language:

In an object-oriented programming (OOP) language (e.g., Java, C++, Python),


programs are structured around objects.
It revolves around the concept of objects, which encapsulate data and the functions
(methods) that operate on that data.
Data and functions are bundled together within objects, promoting encapsulation and
data hiding.
It follows a bottom-up approach, where the program is designed by creating classes
(blueprints for objects) and objects themselves.
Advantages of Object-Oriented Language:

Modularity: Programs are divided into smaller, self-contained modules (objects),


making code easier to manage, maintain, and understand.
Reusability: Objects can be reused in different parts of the program or in
different programs, leading to efficient code development.
Encapsulation: Data and methods that operate on that data are encapsulated within
objects, providing data security and reducing unintended interference.
Abstraction: Complex real-world entities can be abstracted into objects,
simplifying the problem-solving process.
Inheritance: Classes can inherit attributes and behaviors from other classes,
allowing for the creation of hierarchies and reducing redundant code.
Polymorphism: Objects of different classes can be treated as objects of a common
superclass, enabling dynamic behavior based on the specific object's class.
b) Bytecode vs. Machine Code:

Bytecode:

Bytecode is an intermediate representation of code that is generated by a compiler


for languages like Java.
It is platform-independent and not tied to a specific architecture or machine.
Java bytecode is executed by the Java Virtual Machine (JVM) rather than directly by
the hardware.
Machine Code:

Machine code is a low-level binary code that directly corresponds to the


instructions executed by a computer's CPU.
It is specific to a particular computer architecture and cannot be executed on
different architectures without modification.
c) Java Virtual Machine (JVM):

The Java Virtual Machine (JVM) is a software-based execution environment that


executes Java bytecode.
It abstracts the underlying hardware and operating system, providing a consistent
environment for Java programs to run on different platforms.
The JVM interprets or compiles bytecode into native machine code (via Just-In-Time
compilation) for execution on the host machine.
The use of the JVM contributes to Java's platform independence, as developers can
write code once and run it on any device with a compatible JVM.
d) Java's Platform Independence:

Java is often called "machine independent," "platform independent," or an


"interpreted language" because of its approach to execution.
Java code is compiled into bytecode, which is platform-independent and can be
executed on any device with a compatible JVM.
When Java bytecode runs on a JVM, the JVM handles the platform-specific details,
allowing Java programs to run unchanged on different operating systems and
hardware.
e) C vs. Java Performance:

C is generally considered to be faster than Java in terms of execution speed. This


is because C is compiled directly to machine code, resulting in efficient and
optimized execution.
Java, on the other hand, involves an additional layer of abstraction through the
JVM and bytecode interpretation or Just-In-Time compilation, which can introduce
some overhead.
However, the performance difference between C and Java can vary depending on the
specific use case, compiler optimizations, and advancements in JVM technology.
While C might have an edge in raw execution speed, Java offers advantages in terms
of platform independence, ease of development, and memory safety through its
managed memory model.

You might also like