Application Programming Languages

Download Report

Transcript Application Programming Languages

Application Programming Languages
• Machine Language – First generation – write all
program instructions in terms of binary code (0s and 1s)
• Assembly – Second generation
• Close to m/c language,
• Designed for a specific m/c and microprocessors
• Has advantage, but difficult and costly to write and
learn
• Still used today for writing system software
1
• High-level Languages – e.g., C, COBOL, C++, Basic,
FORTRAN, Pascal etc.
• Procedural, textual interface
• Used for different kinds of application programs
• C – PC based, efficient programs, portability,
systems software too
• C++ - OO version of C used for application software
as well as system software
• COBOL – Business administration to process large
data files with alphanumeric characters
• Basic – Used mainly in education and training, to
introduce programming concepts to students
• Pascal – primarily used in computer science courses to teach
sound programming practices
• FORTRAN – processes mainly numeric data, scientific and
engineering applications
• Visual Basic – visual programming tool for creating
applications running on windows
Fourth Generation Languages:
• Consists of a variety of software tools that enable end users to
develop software applications
• Minimal technical assistance, graphical interface
• Also increases professional programmers’ productivity
• Tend to be non – procedural than conventional programming
languages
Contd..
• No need to specify a strict sequence of steps
• Need only to specify what has to be accomplished
• Some nonprocedural languages use ‘natural language
processors’ e.g., speech recognition
• Tightly integrated with GUI screens
• Used to generate complex reports
• Find wide application in development of business and
commercial application packages
• However for scientific and technical work, the third
generation languages are still preferred
• Seven categories of fourth generation languages
Contd..
• PC software tools – general purpose application software
packages
• for PCs e.g., MS Word, Internet Explorer, MS Access
• Query language – for retrieving data stored in databases,
supports a variety of query services not defined earlier e.g.,
SQL
• Report generator
• Extracts data form files/databases,
• Creates customized reports,
• Wide range of formats
• More control and flexibility over formatting than query
languages
Contd..
• RPG III
• Graphics language – retrieves data from files/databases,
displays them in graphical format, can perform arithmetic
and logical operations on data as well e.g., Systat, SAS
graph
• Application generator
• Contain preprogrammed modules that can generate
applications, including web sites
• Speeds development greatly
• Creates appropriate program code
• PowerBuilder, MS FrontPage
Contd….
• Application software package
• Packages sold/distributed by commercial vendors to
eliminate/replace in-house custom built software
• PeopleSoft, SAP R/3
• Very high-level programming language
• Generate program code with fewer instructions than
conventional languages
• Productivity enhancement tools for professional
programmers
Visual Programming:
• Construction of software programs by selecting and
arranging programming objects rather that by writing
program code
• One of the offshoots of the Object-Oriented paradigm
• WebSphere, SunOne Studio 5
JAVA:
• Platform independent, object-oriented
language developed by Sun Microsystems
programming
• Designed to run on any computer or computing device
• Not tied to any microprocessor or any OS
Contd….
• Even a smart cell phone or PDA can share the same Java
program
• Can create ‘applications’, ‘applets’, or ‘servelets’
• Applets reside on centralized network servers
• Server delivers the requisite applets for specific functions
• Provide interactive capabilities for web pages
• Java is a very robust – platform
• Can handle text, data, graphics, sound, and video all in a
single program
Hypertext Markup Language (HTML):
• Page description language for creating hypertext or
hypermedia documents such as web pages
• Uses instructions called tags to specify how the text,
graphics, sound and video are displayed on a web
document/page
• Tags are also used to create dynamic links to other web
pages and objects stored in the same or remote computers
• HTML programs are not written manually
• Created using HTML editors such as MS FrontPage
eXtensible Markup Language (XML):
• New language for improving the usefulness of the web
documents
• HTML limits itself to how the text and images should be
displayed on a web page
• XML describes what the data in those documents mean
• This ensures that data elements can be used in computer
programs for effective manipulation or further processing
• In XML, the XML tag specifies whether a number
represents a price, a date, or a ZIP code
• The XML tags enrich the elements with their exact
meanings
Contd….
• So, computer programs can retrieve specific type of data
from the web page, manipulate them and analyze and
interpret the data items on the fly
• Example – analyzing on line sales data over a period and
displaying the same dynamically
• XML has already become a widely used technology for
web applications
• XML provides a standard format for data exchange
• XML Document Type Definition (DTD) – directory of
standards i.e., RosettaNet an XML dictionary developed by
34 leading companies
• Enables the sending and receiving parties to describe data
the same way
Client/Server Computing
• In client/server computing, desktops called clients are
networked to server computers
• Servers provide the clients with a variety of services and
capabilities
• Computer processing work is split between these two types
of machines
• The client is the point of entry
Contd…
• The server
• provides communication among the clients and
processes
• stores shared data
• serves up web pages, or
• manages network activities
• The term server refers to both the software application and
the physical computer on which the network software runs
• Servers could be mainframes or midrange computers or
powerful PCs
Client/Server Architecture
• Two-tier client/server architecture – the simplest
client/server network with a client networked to a server
computer, with processing split between the two
o Presentation (UI)/application logic
o Storage
• The application logic is placed within the user interface,
which also reads and writes directly to the database
• Example – small business applications
• Classic Three-tier architecture –
o Presentation – UI
o Application Logic (model)
• Storage (persistent storage mechanism)
• The presentation layer is separated
• In two-tier architecture, the integration of UI and
application logic inhibits software reuse, and makes
maintenance more complicated
• This is obviated in three-tier architecture
• Also we have the flexibility to change/modify the
presentation without having to recompile the model
Contd…..
• Multi-tiered (N-tier) client/server architectures
• The work of the entire network is balanced over several
different levels of servers, depending on the kind of service
requested
• A client request may be served by a web server, which
stores and manages web pages
• A particular clients request to have corporate info may be
passed along to the application server
Contd…..
• The application server handles all application operations
between a user and an organization’s back-end business
systems
• The application server may reside on the same computer
as the web server, or may reside on another dedicated
computer
• Client/server computing enables computing work to be
distributed across a number of smaller machines – cost
advantage
Definition
Application Programs
Operating System
Hardware
Definition
Application Programs
Shell
Kernel
Hardware
Basic Operating Systems Concepts
An operating system is software that acts as an intermediary
between the user (application programs) and the hardware
Two main goals:
-
to help the user to run programs in a convenient way
-
to run programs in an efficient manner: resource
allocation (memory, CPU, devices, storage space,...)
Shell: part of the operating system that accepts user
commands.
-
text based (e.g. MS DOS)
-
graphical user interface – GUI (MS WINDOWS)
Contd….
Kernel: to allocate, to use and to free resources in an
efficient way:
- memory management
- processor management
- device management
- storage management
Memory management:
- to allocate memory: (look up for free memory
addresses)
 mono-programming: one single program in main
memory
Contd…
 multitasking: several programs from one user in main
memory
 multi-programming: several programs from several users in
main memory
 virtual memory: additional disk storage is used to store
(parts) of running programs (backing store for main
memory)
-
to free used memory
Processor management:
- to allocate processing time to active programs
(processes):
 time sharing: CPU time is shared by several programs
(scheduling)
 multithreading: CPU time is shared by several ‘threads’
(program pieces)
 multiprocessing: programs can share several CPUs either
in a symmetric way (SMP) (processors are peers) or in an
asymmetric way (master-slave relationship between
processors)
Device management:
- regulates the traffic between the CPU and the I/O devices
- device drivers: low-level software to initiate and to control
the I/O to and from an I/O device
- spool (Simultaneous Peripheral Operations On-line):
printer output is sent to disk storage in order to solve the
problem of concurrent printing:
Contd….
 concurrent printing on one printing device
 cancel unwanted print jobs
 change print job priorities
 memory can be freed during printing process
Storage management (information management):
- to organise and retrieve the information stored on
storage media (tapes, disks, …)
- allocation of storage capacity
- remove of files, directories
- file system structure
- Directories
- files, Inodes
- security