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 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