This document section introduces a text editor and debugging system. It defines a text editor as a program that enables creating and editing text files, and notes the distinction from word processors. An interactive debugging system provides programmers tools to test and debug programs. The objectives are to define these concepts and discuss important functions and characteristics of future debugging systems.
Introduction
Difference between System software and Application software
Difference between System and Application programming
Elements of programming environment
Assembler
Loader and Linker
Macro preprocessor
Compiler
Editor
Debugger
Device Drivers
Operating System
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Introduction
Difference between System software and Application software
Difference between System and Application programming
Elements of programming environment
Assembler
Loader and Linker
Macro preprocessor
Compiler
Editor
Debugger
Device Drivers
Operating System
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Unit 5 2
1. UNIT 5 INTRODUCTION TO A TEXT EDITOR &
DEBUGGING SYSTEM
Structure
5.0 Introduction
5.1 Objectives
5.2 Introduction to Text Editor
5.2.1 Overview of the Editing Process
5.2.2 Types of Editors and User Interface
5.2.3 Editor Structure
5.3 Interactive Debugging Systems
5.3.1 Debugging Functions and Capabilities
5.3.2 Relationship with Other Parts of the System
5.3.3 User Interface Criteria
5.4 Summary
5.5 model Answers
5.6 Further Readings
5.0 INTRODUCTION
In the previous unit we discussed several types of system software such as compiler, linker, loader
and operating system. We also presented a detailed description of Unix operating system. In this
unit, we take up issues related to a text editor and a debugging system.
A text editor is a program that enables you to create and edit text files. The distinction between
editors and word processors is not clear-cut, but in general, word processors provide many more
formatting features.
lnteractive program debugging system provides programmers with facilities that aid in the testing
and debugging of programs. Although the desirability of such systems has been recognised for
some time, there are relatively few actual debugging systems in practical use.
5.1 OBJECTIVES
After completion of this unit, you should be able to:
Define a text editor
Discuss the general approaches used in text editors
Define interactive debugging systems
Discuss the functions and characteristics that are likely to be important in the future
i development of debugging system software.
2. Programming Cpncepts
& Software Tools
I .
5.2 INTRODUCTION TO A TEXT EDITOR
The interactive text editor has become an important aspect of almost any computing environment.
No longer are editors thought af as tools for programmers. It is now increasingly recognised that
text editor should be considered the primary interface to the computer for all types of "knowledge
workers" as they compose, organise, study and manipulate computer-based information.
An interactive editor is a computer program that allows a user to create and revise a target
document. The term document includes objects such as computer programs, text, equation, tables
linker, loader and Operating System, diagrams, line art and photographs; anything that one might
find on a printed page: A text editor is a program in which the primary elements being edited are
character strings of the target text. We also presented a detailed descriptive of Unix operating
system. In this unit, we take up issues related to a Text Editor and a Debugging system.
5.2.1 Overview of the Editing Process
The document-editing process is an interactive user-computer dialogue designed to accomplish fou
tasks:
1) Select the part of the target document to be viewed and manipulated
2) Determine how to format this view on-line and how to display it
3) Specify and execute operations that modify the target document
4) Update the view appropriately.
Editing phase involves how the target document is created or altered with a set of operations such
as insert, delete, replace, move and copy. The editing functions are often specialised to operate on
elements meaningful to the type of editor.
For example, a manuscript-oriented editor might operate on elements such as single characters,
words, lines, sentences and paragraphs.
5.2.2 Types of Editors and User Interface
There are many types of editors, but they fall into two general categories:
Line editors: A primitive form of editor that requires you to specify a specific line of text
before you can make changes to it.
Screen oriented editors: Also called full screen editors, these editors enable you to modify an
text that appears on the display screen by moving the cursor to the desired location.
The user of an interactive editor is presented with a conceptual model of the editing system. This
model is an abstract fiamework on which the editor and the world on which it operates are based.
The conceptual model, in essence provides an easily understood abstractions of the target docume
and its elements, with a set of guidelines describing the effects of operations on these elements.
Besides the conceptual mode, the user interface is concerned with the input devices, the output
devices and the interaction language of the system.
3. 1npG devices ,are used to enter elements of the text being edited, to enter commands and to Introduction to a Text
Editor & Debugging
designate ediuble elements. These devices as used with editors, can be divided into three System
categories-
Text or string devices: Typically typewriter-like keyboards on which a user presses and releases
keys, sending a unique code for each key.
Button or choice devices: Generate an interrupt or set a system flag, usually causing invocation of .
an associated application-program action. Such devices incldde a set of special function keys on an
alphanumeric keyboard or on the display itself.
Locator devices: These are two dimensional anaiog to digital converters that position a cursor -
symbol on the screen by observing the user's movements of the device. Such devices include
joysticks, touch screen panels, data tablets anckmouse.
A locator device combined with a button device allows the user to specify either a particular point
on the screen at which text should be inserted or deleted, or the start and end points of a string of
characters to be operated upon.
Text devices with arrow (cursor) keys are often used to simulate locator devices. Each of these
keys shown are- arrow that points up, down, left or right. An advanced input device namely voice-
input device is now available, which translates spoken words to their textual equivalents, may prove
to be the text devices of the future. Because of their limitations and high cost, voice recognise
systems have been used only in a few specialised situations. 4
Output devices serves to let the user view the elements being edited and the results of the editing
operations. Advanced CRT terminals use hardware assistance for such features as moving the
cursor, inserting and deleting characters and lines, and scrolling lines and pages. The new
professional workstations based on personal computers with high resolution displays, support
multiple proportionally spaced character fonts to produce realistic fascimiles of hard copy
documents.
The interaction language of a text editor is generally one of several common types. The typing
oriented or text command-oriented method is the oldest of the major editor interfaces. The user
communicates with the editor by typing text strings both'for command names and for operands.
These strings are sent to the editor and are usually displayed to the output device. The function key
interface method is the other method in which each command has associated with it a marked key
on the user's keyboard. Function-key command specification is typically coupled with cursor-key
movement for specifying operands, which eliminates much typing. For the common commands in
a function-key editor, usually only a single key need be pressed. The menu-oriented user interface
is a multiple-choicessetof text strings or icons, which are graphic symbols that represent objects or
operations. The editor prompts the user with.a menu of only those actions that can be taken at the
current state of the system.
Typing oriented systems require familiarity with the system and language, as well as some expertise
in typing. Function-key oriented systems often have either too few keys, requiring multiple
keystroke commands, or have too many unique keys, which results in a unwieldy keyboard. The
problem with a menu-oriented system can arise when there are many possible actions and several
choices are required to complete an action. The display area for the menu is rather limited.
4. 1 Programming Concepts 5.2.3 Editor Structure
di Software 'Tools
I t , I
Editing 4 Editing
Module .... burner Page Editing
!
Main
Memory/
Viewing RAM
language Filter
I Processor
Module I_ 1' Viewing
Module buffer Page
Module
Page
Transfer
Output lletices Display
Module hard disk
I I 1 I
Control Data
.........................
Figure: Typical editor structure
Most text editors have a structure similar to the above figure. The command language processor
accepts input from the user's input devices, and analyses the tokens and syntactic structure of the
commands. In this sense, the command language processor functions much like the lexical and
syntactic phases of a compiler. Just as in a compiler, the command language processor may invoke
seinailtic routines directly. In a text editor, these semantic routines perform functions such as
editing and viewing. Alternatively, the command language processor may produce an intermediate
representation of the desired editing operations. This intermediate representation is then decoded
by an interpreter that invokes the appropriate semantic routines. The use of an intermediate
representation allows the editor to provide a variety of user-interaction languages with a single set
of semantic routines that are driven from a common intermediate representation.
The semantic routines involve travelling, editing, viewing, and display functions. In editing a
document, the start of the area to be edited is determined by the current editingpointer maintained
by the editing module, which is the collection of modules dealing with editing tasks. The current
editing pointer can be set or reset explicitly by the user with travelling commands, such as next
paragraph and next screen, or implicitly by the system as a side effect of the previous editing
operation, such as delete paragraph. The travelling module of the editor actually performs the
setting of the current editing and viewing pointers.
When the user issues an editing command, the editing module invokes the editing$lter. This
component filters the document to generate a new editing buffer based on the current editing pointer'
as well as on the editing filter parameters. These parameters, which are specified both by the user
and the system, provide such information as the range of text that can be affected by an operation.
Filtering may simply consist of the selection of contiguous characters beginning at the current
point. The semantic routines of the editing component then operate on the editing buffer, which is
esse~ltially filtered subset of the document data structure.
a
Similarly, in viewing a document, the start of the area to be viewed is determined by the current
viewingpointer. This pointer is maintained by the viewing module of the editor, which is a
collectio~l modules responsible for determining the next view. The current viewing pointer can
of
be set or reset explicitly by the user with a travelling command or implicitly by the system as a
result of the previous editing operation. When the display needs to be updated, the viewing
component invokes the viewing module. This component filters the document to generate a new
viewing buffer based on the current viewing pointer as well as on the viewing filter parameters.
line editors, the viewing buffer can contain the current line; in screen editors, this buffer may
I11
contain a rectangular cutout of the quarter-plane of text. This viewing buffer is then passed to the
5. display module of the editor, which produces a display by mapping the buffer to a rectangular
subset of the screen, called a window or viewport. System
The editing and viewing buffers, while independent, can be related in many ways. In the simplest
case, they are identical: the user edits the material directly on the screen, as is in the followi~lg
figure.
Current editing painter
Current viewing painter
L
Figure: Simple relationship between editing and viewing buffers
The editing and viewing buffers can also partially overlap, or one may be completely contailled in
I the other.
Windows typically cover either the entire screen or a rectangular portion of it. Mapping viewing
buffers to windows that cover only part of the screen is especially useful for editors on modern
graphics-based workstations. Such systems can support multiple windows, simultaneously s h o w i ~ ~ g
different potioils of the same file or portions of different files. This approach allows the user to
I
perform inter-file editing operations much more effectively than with a system having on14 a single
I
I window.
The mapping of the viewing buffer to a window is accomplished by hvo co~nponents the system.
of
First, the viewing component formulates an ideal view, often expressed in a device-independent
intermediate representation. This view may be a very simple one consisting of a window's worth of
text arranged so that lines are not broken in the middle of words. At the other extreme, tlie
idealized view may be a facsimile of a page of fully formatted and typeset text with equations,
tables, and figures. Second, the display module takes this idealized view from the viewing
component and maps it to a physical output device in the most efficient manner possible.
INTERACTIVE DEBUGGING SYSTEMS
An interactive debugging system provides programmers with facilities that aid in the testing and
debugging of programs.
5.3.1 Debugging Functions and Capabilities
The most obvious requirement is for a set of unit test functions that can be specified by the
programmer. One important group of such functions deals with execution sequencing, which is tlie
observation and control of the flow of program execution. After execution is suspended, other
debugging conlmands can be used to analyse the progress of tlie progrm and to diagnose error
1 detected; then execution of the program can be resumed. Given a good graphic representation of
I program progress, it may even be useful to enable the program to run at various speeds called gaits.
6. Programing Concepts A debugging system should also provide function such as tracini and traceback. Tracing can be .
&,Software TOOIS used to track the flow of execution logic and data modifications. The control flow can be traced at
i '
different Ievels of detail namely module, subroutine, branch instruction and so on. raceb back can
show the path by which the current statement is reached. For a given variable or parameter,
traceback can show which statements modified it. Such information should be displayed a
symbolically.
It is also important for a debugging system to have good program display capabilities. It must be
possible to display the program being debugged, complete with statement numbers. The sjrstein, '
should save all the debugging specifications for a recompilation, so the programmer does not need
to reissue all of these debugging commands. A debugging system should consider the language in
which the program being debugged is written. Debugger commands that initiate actions and collect
data about a program's executiim should be common across languages. However, a debugging
sysJem must be sensitive to the specific language being debugged, so that procedural, arithmetic
and conditional logic can be coded in the syntax of that language.
These requirements have a number of consequences for the debugger and for the other software.
When the debugger receives control, the execution of the program being debugged is temporarily
suspended. The debugger must then be able to determine the language in which the program is
written and set its context accordingly.
The notation used to specify certain debugging functions varies according to the language of the
progra& being debugged. The debugger must have access to information gathered by the language
translator. The internal symbol dictionary formats vary widely between different language
. translators. Future compilers and assemblers should aim toward a consistent interface with the
debugging system. One approach is that the language translators to produce the needed information
in a standard external form for the debugger regardless of the internal form used in the translator. .
Another possibility would be for the language translator to provide debugger interface mddu'les that
can respond to requests for information in a standard way regardless of the language being
debugged. ..
~ ~
i
It is also important that a debugging systefl be able td deal with optimized code. Many
optimizations involve the rearrangement of segments of'code in the program. Blocks of code may
be rearranged to eliminate unnecessary branch instructions, which provide more ifficient execution
The user of a debugging system deals with the source program in its original form before
'
. optimizations are performed. The debugging of optimized code requires a substantial amount of
I
I cooperation from the optimizing compiler. In particular, the compiler must retain information
1 about any transportation that it performs on the program. Such information can be made available
both to the debugger and to the programmer.
5.3.2 Relationship with Other Parts of the System
An interactive debugger must be related to other parts of the system in many different ways. The
single most important requirement for any interactive debugger is that it always be available. When
an error is discovered, immediate debugging must be possible because it may be different or
impossible to reproduce the program failure in some other environment or at some other time. The
debugger must commynicate and cooperate with other operating system components such as
interactive subsystems.' 'Debugging is even more important at production time than it is at
application-development time. The debugger must also exist in a way that i s consistent with the ,
security and integrity components of the system. Use of the debugger must be subject to the normal
authorization mechanisms and must leave the usual audit trails. The debugger must coordinate its
activities with those of existing and fature language compilers and interpreters.
7. introduction to a T e q
5.3.3 User Interface Criteria Editor & Debugging
System
The interactive debugging system should be simple in its organisation and familiar in its language.
, The facilities of the debugging system should be organised into a few basic categories of function,
1 which shbuld closely neglect common user tasks. This simple organisation contributes greatly to
i ease of training and ease of use. !
I The user interaction should take advantage of full-screen terminal devices when they are available.
The primary advantage is that a great deal of information can be displayed and changed easily and
quickly.
If the tasks a user needs to perform are reflected in the organisation of menus, then the system will
feel very natural to use. Menus should have titles that identify the task. Directions should precede
any choices available to the user. Techniques such as indentation should be used to help separate
portions of the menu.
A debugging system should also support interactive users when a screen terminal device is not
present. Every action a user can take at a full-screen terminal should have an equivalent action in a
linear debugging language.
The command language should have a clear, logical, simple syntax. Commands should be simple
rather than compound.
There should be a consistent use of parameter names across the set of commands. Parameters
should be automatically checked for errors in such attributes as type and range of values.
Commqi~d formats should be as flexible as possible. The command language should minimise the
use of such punctuation as parentheses, slashes, quotation marks and other special characters. Any
good interactive-system should have an on-line HELP facility.' HELP should be accessible from
any state of the debugging session.
Check Your Progress
1. Mention the different tasks irtvolved in the document editing process.
2. What are the main functions of a debugging system?
8. Programming Concepts
iYr Sofhvare Tools
5.4 SUMMARY
In this unit, we discussed functions of two types of system software: Text Editor and debugging
.system. A text editor is quite common tool now. It is no longer a tool to be used by a programmer
only. One of the important features of the current generation of a text editor is to provide syntax-
directed feature, which provides help in correcting the syntax of the language.
5.5 MODEL ANSWERS
1. There are four tasks to be accomplished by the document editing process:
i) Selecting - Select the part of the target document to be viewed and manipulated
ii) Formatting - Determine how to format the view on-line and how to display it
iii) Modifying - Specify and execute operations that modify the target document
iv) Updating - Update the view appropriately.
2. The functions of a debugging system include:
Observation and control of the flow of program execution
Analyse the progress of the program and to diagnose errors detected
Tracing - used to track the flow of execution logic and data modification
Traceback - shows the path by which the current statement is reached
Good program display capabilities.
5.6 FURTHER READINGS
1. System Software by Leland L. Beck, Addison-Wesley Publishing Company 1990.