The document discusses the evolution of various components of system software, including assemblers, loaders, linkers, macros, compilers, interpreters, and operating systems. It provides definitions and descriptions of each component's functions. The document also covers different types of editors like line editors, stream editors, screen editors, word processors, structure editors, full screen editors, multiple window editors, DOS editors, and MS Word editors.
The document discusses the evolution of various components of system software, including assemblers, loaders, linkers, macros, compilers, interpreters, and operating systems. It provides definitions and descriptions of each component's functions. The document also covers different types of editors like line editors, stream editors, screen editors, word processors, structure editors, full screen editors, multiple window editors, DOS editors, and MS Word editors.
The document discusses the evolution of various components of system software, including assemblers, loaders, linkers, macros, compilers, interpreters, and operating systems. It provides definitions and descriptions of each component's functions. The document also covers different types of editors like line editors, stream editors, screen editors, word processors, structure editors, full screen editors, multiple window editors, DOS editors, and MS Word editors.
The document discusses the evolution of various components of system software, including assemblers, loaders, linkers, macros, compilers, interpreters, and operating systems. It provides definitions and descriptions of each component's functions. The document also covers different types of editors like line editors, stream editors, screen editors, word processors, structure editors, full screen editors, multiple window editors, DOS editors, and MS Word editors.
Module-1 Definition Definition(Cont..) Evolution of the Components of System Software
• The various components of system
software are: ▪ 1. Assemblers ▪ 2. Loaders and Linkers ▪ 3. Macros ▪ 4. Compilers or interpreters ▪ 5. Operating system Assembler ▪ An assembler is a program that translates assembly language code into machine code or an intermediate code. ▪ Assembly language is a low-level programming language that is specific to a particular computer architecture. It consists of mnemonics and symbols that represent the machine instructions of a given processor. ▪ The assembler converts the assembly code into machine code, which is a set of binary instructions that the computer's central processing unit (CPU) can execute directly. • Loader: • A loader is a program or part of an operating system that loads executable files into the computer's memory for execution. • After a program is compiled or assembled, it is typically stored in a file on disk in a format that is not directly executable by the computer's hardware. • The loader is responsible for bringing the executable code and data from the program file into the computer's memory, making it ready for execution. • It also performs address binding, which involves resolving references between different parts of the program and adjusting memory addresses accordingly. • Linker: • A linker is a utility that combines various object files generated by the compiler into a single executable program. • During the compilation process, a program is often divided into multiple source code files, each of which is compiled separately into an object file. These object files need to be linked together to create the final executable. • The linker resolves symbolic references and addresses between different object files, ensuring that all the pieces fit together seamlessly. • It can also include library code into the executable, resolving references to external functions. • There are two types of linking: • Static Linking: The linker combines all necessary code into a single executable before the program runs. • Dynamic Linking: The linking is done at runtime, and shared libraries are linked during program execution. • Macro: • In the context of system programming, a macro refers to a set of instructions or statements that are defined and expanded in a program. • Macros are often used to define reusable code snippets or to perform repetitive tasks. • They can be simple text substitutions or more complex procedures, and they are expanded by the preprocessor before the actual compilation process. • Compiler: • A compiler is a program that translates high-level programming language code (like C, C++, Java) into machine code or an intermediate code. • Unlike an assembler, which works with assembly language, a compiler translates code written in a higher-level language into a form that can be executed by the computer's hardware. • The compilation process involves several stages, including lexical analysis, syntax analysis, optimization, and code generation. • Interpreter: • An interpreter is a program that directly executes source code written in a high-level programming language. • Instead of translating the entire program into machine code beforehand (as a compiler does), an interpreter translates and executes the code line by line at runtime. • Interpreters are often used in scripting languages, where quick development and ease of debugging are priorities. Operating System ▪ The operating system (OS) is a software layer that manages computer hardware and provides services to application software. ▪ It acts as an intermediary between the user and the hardware, handling tasks such as process management, memory management, file system management, and device management. ▪ Examples of operating systems include Windows, Linux, macOS, and various versions of Unix. Editors • Editors or text editors are software programs that enable the user to create and edit text files. • In the field of programming, the term editor usually refers to source code editors that include many special features for writing and editing code. • Notepad, WordPad are some of the common editors used on Windows OS and vi, emacs, Jed, Pico are the editors on UNIX OS. • Features normally associated with text editors are — moving the cursor, deleting, replacing, pasting, finding, finding and replacing, saving etc. ▪ There are generally five types of editors: ▪ Line editor: In this, you can only edit one line at a time or an integral number of lines. You cannot have a free-flowing sequence of characters. It will take care of only one line. ➢ Ex : Teleprinter, edlin, teco ▪ Stream editors: In this type of editors, the file is treated as continuous flow or sequence of characters instead of line numbers, which means here you can type paragraphs. ➢ Ex : Sed editor in UNIX Types of ▪ Screen editors: In this type of editors, the user is able to see the cursor on the screen and Editors can make a copy, cut, paste operation easily. It is very easy to use mouse pointer. ➢ Ex : vi, emacs, Notepad ▪ Word Processor: Overcoming the limitations of screen editors, it allows one to use some format to insert images, files, videos, use font, size, style features. It majorly focuses on Natural language. ▪ Structure Editor: Structure editor focuses on programming languages. It provides features to write and edit source code. ➢ Ex : Netbeans IDE, gEdit. Some Other Editors • Full Screen Editors: ▪ In computers, a full-screen editor or distraction-free editor is a text editor that occupies full display with the purpose of sidelining the user from the OS and the other applications. ▪ It helps the user to focus on writing only and do not get distracted by the other applications and the cluttered interface. ▪ Often full screen editors has a dark background and a text field with a light- colored text. ▪ They include customizable interfaces and feature like word count. ➢ Ex : Acme, Coderoom, FocusWriter Some Other Editors (Cont..)
• Multiple Window Editor:
▪ Multiple window editor allows you to work on more than one file at a time and cut and paste text from file into another via yanking and putting. ▪ The two fundamental concepts that lie behind multi-window editors are buffer and windows. ➢ Buffer: Buffer holds the text to be edited. The text may come from a file or a brand-new text that you want to write on a file. A file only has one buffer associated with it. ➢ Windows: Windows provides a view to the buffer to see what the buffer holds and edit and modify it. A buffer may have multiple windows. Any changes made in any of the windows will be reflected in all other windows associated with the same buffer. Once the last window associated with a buffer is closed, the file gets hidden. But if you have made any changes to the buffer and not have written them into the disk, it may not allow you to close the window. Some Other Editors (Cont..) • DOS-Editor: ▪ MS-DOS editor or sometimes also known as just edit is a character-based text editor that comes with MS-DOS and a 32-bit version of windows. ▪ Previously, it was QBASIC running in editor mode but after DOS-7, it became a standalone program. ▪ It is also used as a substitute for Notepad since notepad can work only on small files, DOS editor can work on around 66, 257 lines and up to 5 MB file size. ▪ It has features like a customizable color theme, it can open up to 9 files at a time, it can open files in binary mode. • VI editor : • The vi editor (short name for the visual editor) is a screen editor which is available in UNIX OS. • Vi has no menus instead it uses a combination of keystrokes to accomplish tasks. • An improved version of vi is vim(vi improved). • Vi editor is usually available in all versions of UNIX OS, its implementation is very easy, it requires only a few resources and it is more user-friendly. • MS-Word Editor ▪ Microsoft Word is a robust word processing application developed by Microsoft. Serving as part of the Microsoft Office suite, it functions as a comprehensive text editor. ▪ Users leverage Word for creating, editing, and formatting documents, with a plethora of features like font customization, paragraph alignment, and page layout tools. Some Other ▪ The application supports the integration of graphics, charts, and multimedia content into Editors documents. ▪ Collaborative features enable real-time editing (Cont..) and feedback from multiple users. ▪ Spell check, grammar check, and template options enhance document quality and efficiency. ▪ Microsoft Word is widely employed for various purposes, from crafting basic letters to producing intricate reports and academic documents. ▪ Its user-friendly interface, regular updates, and seamless integration with other Office applications contribute to its popularity in professional, academic, and personal settings. MS DOS Editor Vi Editor MS-Word Editor Editing Process The document editing process mainly compromises of the following four tasks : • The part of the document to edited or modifies is selected. • Determining how to format this lines on view and how to display it. • Specify and execute the operations that modify the document. • Update the view properly.
The above steps include filtering, formatting, and traveling.
• Formatting: Visibility on display screen.
• Filtering: Finding out the main/important subset. • Traveling: Locating the area of interest. User Interface of Editors • The user interface of editors typically means the input, output and the interaction language. ▪ The input devices are used to enter text, data into a document or to process commands. ▪ The output devices are used to display the edited form of the document and the results of the operation/commands executed. ▪ The interaction language provides the interaction with the editor.