Advertisements

Showing posts with label Software Engineering. Show all posts
Showing posts with label Software Engineering. Show all posts

Sunday, October 14, 2018

What is Compiler and Assembler?

As you know that High Level Language is machine independent and assembly language though it is machine dependent yet mnemonics that are being used to represent instructions are not directly understandable by machine. Hence to make the machine understand the instructions provided by both the languages, Compiler and Assembler are required to the convert these instructions into machine language.

The software (set of programs) that reads a program written in high level languages and translates it into an equivalent program in machine language is called as Compiler.

The program written by the programmer in high level language is called source program and the program generated by the compiler after translation is called as object program.

Program execution is fast once program is compiled successfully an object code file is produced. Now this object code file is executed. No need of re-compilation unless we change the source code.

Error detection and removal is comparatively difficult. Because compiler will show a list of many errors in the whole program.

Storage Allocation

Static Allocation & Dynamic Allocation

Static Allocation:-
Temporary variables, including the one used to save the return address, were also assigned fixed addresses within the program. This type of storage assignment is called static allocation.

Dynamic Allocation:-
It is necessary to preserve the previous value of any variables used by subroutine, including parameters, temporaries, return address, register save areas, etc. It can be accomplished with a dynamic storage allocation technique.


Compiler

The software (set of programs) that reads a program written in assembly language and translates it into an equivalent program in machine language is called Assembler. 

Assembler is system software which converts an assembly language program to its equivalent object code.

  • The input to the assembler is a source code written in assembly language (using machine)

and the output is an object code.

Basic Assembler functions:-
  • Translating mnemonic language to its equivalent object code.
  • Assigning machine address to symbolic labels.
Assembler




  

Saturday, October 13, 2018

Computer Languages: Low & High level Languages| Definition & Types| Technical Knowledge

Computer Languages

Languages are a means of communication. Normally people interact with each other through a language. On the same pattern, communication with computers is carried out through a languages. This language is understood both by user and the machine. Just as every language like Hindi, English has it's grammatical rules; every computer language is bound by rules known as SYNTAX of that language. The user is bound by that syntax while communicating with the computer system.

Computer language are broadly classified as:

1.  Low Level Language:

The term low level means closeness to the way in which machine understand. The low level languages are:

a.  Machine Language:

This is the language (in the form of 0's and 1's, called binary numbers) understood directly by the computer. It is machine dependent. It is difficult to learn and even more difficult to write programs.

b.  Assembly Language:

This is the language where the machine codes comprising of 0's and 2's are substituted by symbolic codes ( called mnemonics) to improve their understanding. It is the first step to improve programming structure.

Assembly language programming is simpler and less time consuming than machine level programming, it is easier to locate and correct errors in assembly language than in machine language programs. It is also machine dependent. Programmers must have knowledge of the machine on which the program will run.

2.  High Level Languages:

You know that low level languages requires extensive knowledge of the hardware since it is machine dependent. To overcome the limitation, high level languages has been evolved which uses normal English like, easy to understand statement to solve any problem. Higher level languages are computer independent and programming becomes quite easy and simple.

Various high level languages are given below:


  • BASIC (Beginners All Purpose Symbolic Instruction Code): It is widely used, easy to learn general purpose language. Mainly used in microphones in earlier days.
  • COBOL (Common Business Oriented Language): A standardized language used for commercial applications.
  • FORTRAN (Formula Translation): Developed for solving mathematical and scientific problems. One of the most popular language among scientific community.
  • C: Structured Programming Language used for all purpose such as scientific applications, commercial applications, developing games etc.
  • C++: Popular object oriented programming language, used for general purpose.


Friday, October 12, 2018

Software : Application Software | Definition & Packages | Technical Knowledge

Application Software:

Application Software is a set of programs, which are written to perform specific tasks, for example: An application package for managing library known as library information system is used to manage information of library such as: keeping books details, account holder details, books issue details, book return details etc. Another application package for managing student details is called students's information system, managers students's roll no. name, parents name, address, class, section, processing of examination results etc. Application software can be broadly classified into two types:

  • Generalized Packages
  • Customized Packages
Fig. Application Software


Generalized Packages:

These are users friendly software written to cater to user's very general needs such as preparing documents, drawing pictures, database to manage data/information, preparing presentations, play game etc.

It is a group of programs that provide general purpose tools to solve specific problems. Some of the generalized packages are listed below:
  • Word Processing Software (For preparing documents): Word perfect, MS- Word, Open Office.org Writer
  • Spreadsheets (Data Analysis): Lotus Smart suites, MS-Excel, OpenOffice.org Calc, Apple Numbers
  • Presentations : Presentation Graphics, MS-PowerPoint, OpenOffice.org Impress
  • Database Management System: MS-Access, OpenOffice.org Base, MS-SQL Server.ORACLE
  • Graphics Tools: Paint shop pro, Adobe Photoshop
Fig. Generalized Packages

Customized Packages:

These are the applications that are customized (or developed) to meet the specific requirements of an organization/institution. For Example: Students information details, Payroll Packages, inventory control etc.
  • Vysar Atric WinApp Framework
  • C#.NET
  • .NET
  • Microsoft Visual Basic 6.0
  • Other Windows Tools
These packages are developed using high-level computer language.
Fig. Customized Packages




Thursday, October 11, 2018

Software : System Software | Operating System | Technical Knowledge

System Software:

When you switch on the computer the program stored in ROM are executed which activates different units of your computer and makes it ready for you to work on it. This set of programs can be called system software.

System Softwares are sets of programs, responsible for running the computer, controlling various, operations of computer system and management of computer resources. Operating System (OS) falls under this category.

An Operating System is a system software that provides an interface for a user to communicate with the computer, manages hardware devices (disk drives, keyboard, monitor, etc), manages and maintains disk file systems and supports application programs. Some popular Operating systems are UNIX, Windows and Linux.

Fig. Operating Systems

Although operating system provides all the features users need to use and maintain their systems, inevitably, they still do not meet everyone's expectations. This has led to another type of system software called "Utilities". These are programs that bridge the gab between the functionality of an OS and the needs of users. Utility programs are a board category of software such as compress (zip) / uncompress (unzip) files software, antivirus software, split and join files software, etc.
The System Softwares can be categorized in the term of their working :
1.Utilities
2.Programming Language Translators
3.Firmware
4.Device Drivers
5. Operating System (OS)
6.BIOS Software
7.HD Sector Boot Software
8. Linker Software
The Software Example are given below
  1. defragmenter
2. System restore
3. compilers
4. Debuggers
5. Assemblers
6. browsers
7. wordprocessors
8. spreadsheet
9. window
10. ubuntu
11. Macintosh
12. Unix
13. PlayStation
14. Xcode
15. Visual Studio
16. wifi driver
17. mouse driver
18. space optimizer
19. Disk Cleaner
20. Antivirus







Wednesday, October 10, 2018

Software : The Beginning | Definition and Characteristics | Technical Knowledge

What is Software? Characteristics of Software.

As you are aware, computer cannot do anything on its own. It is the user who instructs computer; what to do, how to do and when to do. In order to perform any task, you have to give a set of instructions in a particular sequence to the computer. These sets of instructions are called Programs. Software refers to a set of programs that makes the hardware perform a particular set of tasks in particular order. Software can be classified mainly into following categories and sub-categories are shown in figure.

Types of Software:




Fig. Classification of Software

Software Characteristics

Different individuals judge software on different basis. This is because they are involved with the software in different ways. For example, users want the software to perform according to their requirements. Similarly, developers involved in designing, coding, and maintenance of the software evaluate the software by looking at its internal characteristics, before delivering it to the user. Software characteristics are classified into six major components.
Functionality: Refers to the degree of performance of the software against its intended purpose.
Reliability: Refers to the ability of the software to provide desired functionality under the given conditions.
Usability: Refers to the extent to which the software can be used with ease.
Efficiency: Refers to the ability of the software to use system resources in the most effective and efficient manner.
Maintainability: Refers to the ease with which the modifications can be made in a software system to extend its functionality, improve its performance, or correct errors.
Portability: Refers to the ease with which software developers can transfer software from one platform to another, without (or with minimum) changes. In simple terms, it refers to the ability of software to function properly on different hardware and software platforms without making any changes in it.