Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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