ASIM HASSAN RESEARCHESCOMPUTER PROGRAMS (also software programs, or justprograms) are instructions for a computer. A computer requires programs tofunction, typically executing the programs instructions in a central processor. Theprogram has an executable form that the computer can use directly to execute theinstructions. The same program in its human-readable source code form, fromwhich executable programs are derived (e.g., compiled), enables a programmer tostudy and develop its algorithms.Computer source code is often written by professional computer programmers.Source code is written in a programming language that usually follows one of twomain paradigms: imperative or declarative programming. Source code may beconverted into an executable file (sometimes called an executable program or abinary) by a compiler and later executed by a central processing unit. Alternatively,computer programs may be executed with the aid of an interpreter, or may beembedded directly into hardware.Computer programs may be categorized along functional lines: system softwareand application software. Many computer programs may run simultaneously on asingle computer, a process known as multitaskingTYPES OF COMPUTER PROGRAMS:Practical computersystems divide software systems into three major classes system software,programming software and application software, although the distinction isarbitrary, and often blurred.1.SYSTEM SOFTWARE: is computer software designed to operate thecomputer hardware and to provide and maintain a platform for running applicationsoftware.THE MOST IMPORTANT TYPES OF SYSTEMSOFTWARE ARE: • The computer BIOS and device firmware, which provide basic functionality to operate and control the hardware connected to or built into the computer. • The operating system (prominent examples being Microsoft Windows, Mac OS X and Linux), which allows the parts of a computer to work together by performing tasks like transferring data between memory and disks or rendering output onto a display device. It also provides a platform to run high-level system software and application software. • Utility software, which helps to analyze, configure, optimize and maintain the computer.2.APPLICATION SOFTWARE is computer software designed tohelp the user to perform a particular task. Such programs are also called software
ASIM HASSAN RESEARCHESapplications, applications or apps. Typical examples are word processors,spreadsheets, media players and database applications.APPLICATION SOFTWARE CLASSIFICATION: APPLICATION SUITE: consists of multiple applications bundled together. They usually have related functions, features and user interfaces, and may be able to interact with each other, e.g. open each others files. Business applications often come in suites, e.g. Microsoft Office, OpenOffice.org, and iWork, which bundle together a word processor, a spreadsheet, etc.; but suites exist for other purposes, e.g. graphics or music. ENTERPRISE SOFTWARE addresses the needs of organization processes and data flow, often in a large distributed environment. (Examples include Financial, Customer Relationship Management, and Supply Chain Management). Note that Departmental Software is a sub-type of Enterprise Software with a focus on smaller organizations or groups within a large organization. (Examples include Travel Expense Management, and IT Helpdesk INFORMATION WORKER SOFTWARE addresses the needs of individuals to create and manage information, often for individual projects within a department, in contrast to enterprise management. Examples include time management, resource management, documentation tools, analytical, and collaborative. Word processors, spreadsheets, email and blog clients, personal information system, and individual media editors may aid in multiple information worker tasks CONTENT ACCESS SOFTWARE is software used primarily to access content without editing, but may include software that allows for content editing. Such software addresses the needs of individuals and groups to consume digital entertainment and published digital content. (Examples include Media Players, Web Browsers, Help browsers, and Games) EDUCATIONAL SOFTWARE is related to content access software, but has the content and/or features adapted for use in by educators or students. For example, it may deliver evaluations (tests), track progress through material, or include collaborative capabilities. SIMULATION SOFTWARE are computer software for simulation of physical or abstract systems for either research, training or entertainment purposes. MEDIA DEVELOPMENT SOFTWARE addresses the needs of individuals who generate print and electronic media for others to consume, most often in a commercial or educational setting. This includes Graphic Art software, Desktop Publishing software, Multimedia Development software, HTML editors, Digital Animation editors, Digital Audio and Video composition, and many others
ASIM HASSAN RESEARCHES PRODUCT ENGINEERING SOFTWARE is used in developing hardware and software products. This includes computer aided design (CAD), computer aided engineering (CAE), computer language editing and compiling tools, Integrated Development Environments, and Application Programmer Interfaces. A PROGRAMMING TOOL OR SOFTWARE DEVELOPMENT TOOL is a program or application that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical objectCOMPUTER PROGRAMMING is the iterative process of writing orediting source code. Editing source code involves testing, analyzing, and refining,and sometimes coordinating with other programmers on a jointly developedprogram. A person who practices this skill is referred to as a computer programmeror software developer. The sometimes lengthy process of computer programming isusually referred to as software development. The term software engineering isbecoming popular as the process is seen as an engineering disciplinePROGRAMMING LANGUAGE is an artificial language designed toexpress computations that can be performed by a machine, particularly a computer.Programming languages can be used to create programs that control the behavior ofa machine, to express algorithms precisely, or as a mode of human communication.Many programming languages have some form of written specification of theirsyntax (form) and semantics (meaning). Some languages are defined by aspecification document. For example, the C programming language is specified byan ISO Standard. Other languages, such as Perl, have a dominant implementationthat is used as a reference.TYPES OF PROGRAMMING LANGUAGESLOW-LEVEL PROGRAMMING LANGUAGE:is a programming language thatprovides little or no abstraction from a computers instruction set architecture. Theword "low" refers to the small or nonexistent amount of abstraction between thelanguage and machine language; because of this, low-level languages aresometimes described as being "close to the hardware."A low-level language does not need a compiler or interpreter to run; the processorfor which the language was written is able to run the code without using either ofthese.HIGH-LEVEL PROGRAMMING LANGUAGE is a programming languagewith strong abstraction from the details of the computer. In comparison to low-level
ASIM HASSAN RESEARCHESprogramming languages, it may use natural language elements, be easier to use, orbe more portable across platforms. Such languages hide the details of CPUoperations such as memory access models and management of scope.This greater abstraction and hiding of details is generally intended to make thelanguage user-friendly, as it includes concepts from the problem domain instead ofthose of the machine used. A high-level language isolates the execution semanticsof a computer architecture from the specification of the program, making theprocess of developing a program simpler and more understandable with respect to alow-level language.PSEUDOCODE is a compact and informal high-level description of a computerprogramming algorithm that uses the structural conventions of a programminglanguage, but is intended for human reading rather than machine reading.Pseudocode typically omits details that are not essential for human understandingof the algorithm, such as variable declarations, system-specific code andsubroutines. The programming language is augmented with natural languagedescriptions of the details, where convenient, or with compact mathematicalnotation. The purpose of using pseudocode is that it is easier for humans tounderstand than conventional programming language code, and that it is a compactand environment-independent description of the key principles of an algorithm. It iscommonly used in textbooks and scientific publications that are documentingvarious algorithms, and also in planning of computer program development, forsketching out the structure of the program before the actual coding takes place.No standard for pseudocode syntax exists, as a program in pseudocode is not anexecutable program. Pseudocode resembles, but should not be confused with,skeleton programs including dummy code, which can be compiled without errors.Flowcharts can be thought of as a graphical alternative to pseudocode.MACHINE CODE OR MACHINE LANGUAGE is a system of instructions anddata executed directly by a computers central processing unit. Machine code maybe regarded as a primitive (and cumbersome) programming language or as thelowest-level representation of a compiled and/or assembled computer program.Programs in interpreted languages are not represented by machine code however,although their interpreter (which may be seen as a processor executing the higherlevel program) often is. Machine code is sometimes called native code whenreferring to platform-dependent parts of language features or libraries. Machinecode should not be confused with so called "bytecode", which is executed by aninterpreter.BINARY CODE is the system of representing text or computer processorinstructions by the use of the binary number systems two-binary digits "0" and "1".A binary string of eight digits (bits), for example, can represent any of 256 possiblevalues and can correspond to a variety of different symbols, letters or instructions.In 8-bit ASCII code the lowercase a is represented by the bit string 01100001.
ASIM HASSAN RESEARCHESIn computing and telecommunication, binary code is used for any of a variety ofmethods of encoding data, such as character strings, into bit strings. Those methodsmay be fixed-width or variable-width.In a fixed-width binary code, each letter, digit, or other character, is represented bya bit string of the same length; that bit string, interpreted as a binary number, isusually displayed in code tables in octal, decimal or hexadecimal notation.There are many character sets and many character encodings for them.A bit string, interpreted as a binary number, can be translated into a decimalnumber.COMPILER is a computer program (or set of programs) that transforms sourcecode written in a computer language (the source language) into another computerlanguage (the target language, often having a binary form known as object code).The most common reason for wanting to transform source code is to create anexecutable program.The name "compiler" is primarily used for programs that translate source code froma high-level programming language to a lower level language (e.g., assemblylanguage or machine code). A program that translates from a low level language toa higher level one is a decompiler. A program that translates between high-levellanguages is usually called a language translator, source to source translator, orlanguage converter. A language rewriter is usually a program that translates theform of expressions without a change of language.A compiler is likely to perform many or all of the following operations: lexicalanalysis, preprocessing, parsing, semantic analysis, code generation, and codeoptimization.Program faults caused by incorrect compiler behavior can be very difficult to trackdown and work around and compiler implementors invest a lot of time ensuring thecorrectness of their software.The term compiler-compiler is sometimes used to refer to a parser generator, a tooloften used to help create the lexer and parser.INTERRPERTER : they usually processes low level languages to binary code.They read instruction line by line. They are usually come along visual basic, theycannot create executable files.