Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
2 views

1.2 Fundamentals of Programming

The document outlines the fundamentals of programming, including the importance of programming languages, their history, and the impact of various programming paradigms such as procedural, object-oriented, functional, and logic-based. It discusses the role of programming languages in problem-solving, software design, and the characteristics of good programming languages. Additionally, it covers machine architectures, virtual computers, binding times, and the significance of programming environments.

Uploaded by

hetavimodi2005
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

1.2 Fundamentals of Programming

The document outlines the fundamentals of programming, including the importance of programming languages, their history, and the impact of various programming paradigms such as procedural, object-oriented, functional, and logic-based. It discusses the role of programming languages in problem-solving, software design, and the characteristics of good programming languages. Additionally, it covers machine architectures, virtual computers, binding times, and the significance of programming environments.

Uploaded by

hetavimodi2005
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

UNIT - I

Fundamentals of Programming

By: Prof. S.N.Shelke

1
Unit I Syllabus

• Importance of Studying Programming Languages, History of Programming


Languages, Impact of Programming Paradigms, Role of Programming
Languages, Programming Environments. Impact of Machine Architectures:
The operation of a computer, Virtual Computers and Binding Times.
• Programming paradigms- Introduction to programming paradigms,
Introduction to four main Programming paradigms- procedural, object
oriented, functional, and logic and rule based.
Impact of Programming Paradigms
Programming Paradigm

• A programming paradigm is a fundamental style of computer programming.


• Compare with a software development methodology, which is a style of
solving specific software engineering problems.
• Different methodologies are more suitable for solving certain kinds of
problems or applications domains.
• Same for programming languages and paradigms.
• Programming paradigms differ in:
• the concepts and abstractions used to represent the elements of a
program (such as objects, functions, variables, constraints, etc.)
• the steps that compose a computation (assignation, evaluation, data
flow, control flow, etc.).
Programming Paradigm

• Some languages are designed to support one particular paradigm


– Smalltalk supports object-oriented programming
– Haskell supports functional programming

• Other programming languages support multiple paradigms


– Object Pascal, C++, C#, Visual Basic, Common Lisp, Scheme, Perl,
Python, Ruby, Oz and F#.

• The design goal of multi-paradigm languages is to allow


programmers to use the best tool for a job, admitting that no one
paradigm solves all problems in the easiest or most efficient way.
Impact of Programming Paradigms

• Problem Solving
• What is Programming Language
• Software Design
Role of Programming Languages
Role of Programming Languages

• A programming language allows people to create programs that tell


machines (Computers) what to do.
• A programming language is a tool for developing executable models for a
class of problem domains.
1. What makes a Good Language
2. Language Paradigms
3. Language Standardization
4. Internationalization
1. What makes a Good Language?

• Clarity, Simplicity and unity


• Orthogonality
• Neutralness for the application
• Support for Abstraction
• Ease of program verification
• Programming Environment
• Portability of program
• Cost of use
• Cost of program execution
• Cost of program translation
• Cost of program creation, testing and use
• Cost of program maintenance
2. Language Paradigm

• Imperative Languages
• Applicative Languages
• Rule Based Languages
• Object Oriented Programming.
3. Language Standardization

Types:
1. Priority Standard
2. Consensus standard

Issues for effective standards:


1. Timeliness
2. Conformance
3. Obsolescence
4. Internationalization

• Collating Sequence
 Sorting
 Case
 Scanning Direction

• Country Specific Date format

• Country Specific Time format


Programming Environments

1. Effects on Language Design


• Separate compilation (Independent compilation)
• Testing And Debugging
 Execution Trace features
 Breakpoints
 Assertions

2. Environment Framework: Infrasture Services


 Data repository,
 GUI,
 Security,
 Communication

3. Job Control and Process Languages


Impact of Machine Architectures
The operation of a computer

1. Computer Hardware
2. Firmware Computer
3. Translators and Firmware Architectures
1. Computer Hardware
Six Major Components of
Computer:
1. Data
2. Primitive Operation
3. Sequence Control
4. Data Access
5. Storage Management
6. Operating Environment
2. Firmware Computer

• Realize the computer in hardware


• Any precisely defined algorithm or data structre
3. Translators and Firmware Architectures
Virtual Computers and Binding Times

• Virtual Computers and Language Implementations


• Hierarchies of Virtual Machines
• Binding and Binding Time
What is a computer ?

• A computer is a programmable machine that receives input, stores and


manipulates data or information, and provides output in a useful format.
• While a computer can, in theory, be made out of almost anything, and
mechanical examples of computers have existed through much of recorded
human history, the first electronic computers were developed in the mid-
20th century (1940–1945).
Virtual Computer

• The Virtual Computer is completely reconfigurable in every respect.


• Computing machines based on reconfigurable logic are hyper-
scalable.
Binding time

• Binding time is the moment in the program's life cycle when this
association occurs.
• Many properties of a programming language are defined during its
creation.
• For instance, the meaning of key words such as while or for in C, or the size
of the integer data type in Java, are properties defined at language design
time.
Classes of Binding Time

1. Execution Time
 On entry of subprogram or block.
 At arbitrary point during execution.
2. Translation Time
 Binding chosen by programmer
 Binding chosen by Translator.
 Binding chosen by loader
3. Language Implementation Time
4. Language definition Time
Prof. S. N. Shelke
(Assistant Professor)
Department of Computer Engineering
Sinhgad Academy of Engineering,
Kondhwa, Pune

You might also like