AS & A Level Computer Science (9618) - Chapter 8: System Software

James Gan
18 Nov 202328:10

Summary

TLDRIn this educational video, James, a computer science graduate turned teacher, delves into the world of system software, essential for a computer's operation. He explains that system software acts as a platform for application software and manages hardware resources. James covers the evolution of operating systems, their role as a middleman between hardware and software, and their tasks like user interface provision, resource management, and security. He also explores utility software, program libraries, language translators, and integrated development environments, highlighting their significance in maintaining system functionality and aiding programmers.

Takeaways

  • 💻 System software is essential for a computer to function, providing a platform for application software and managing hardware resources.
  • 🖥️ The operating system (OS) acts as a middleman between hardware and application software, controlling hardware and facilitating interaction with applications.
  • 🔧 Utility software, such as antivirus and disk cleanup tools, performs specific tasks to maintain and enhance the functionality of a computer system.
  • 🗂️ Program libraries or subroutines are pre-written code snippets that can be reused by programmers to save time and effort, improving efficiency in software development.
  • 🔗 Dynamic link libraries (DLLs) allow programs to access subroutines at runtime without the need to copy them, reducing storage space and memory usage.
  • 🔧 Translators, including interpreters and compilers, convert high-level programming language code into machine-readable code, with interpreters executing line by line and compilers translating the entire code at once.
  • 🛠️ Integrated Development Environments (IDEs) offer a comprehensive suite of tools for programmers, including code editing, debugging, and building capabilities, all within a single interface.
  • 💡 IDE features like pretty printing, context-sensitive prompts, dynamic syntax checking, and code block expansion/collapsing enhance the coding experience and productivity.
  • 🔄 Java introduces a unique approach by using both compilation and interpretation, with Java bytecode being interpreted by the Java Virtual Machine (JVM) for platform-independent execution.

Q & A

  • What is system software?

    -System software is the type of computer program that provides a platform for running application software and manages computer hardware resources.

  • What are the main tasks carried out by an operating system?

    -Operating systems control hardware, interact with application software, provide a user system interface, manage resources, handle memory management, manage device drivers, and manage files.

  • What is the difference between a graphical user interface and a command line interface?

    -A graphical user interface allows users to interact with the computer using graphics, such as icons on a desktop, while a command line interface is text-based and often used by programmers to communicate with the system.

  • How does an operating system manage resources?

    -The OS manages resources by allocating RAM and processing power to various processes, scheduling tasks to ensure each process gets sufficient time and resources, and resolving conflicts when multiple processes require resources simultaneously.

  • What is the purpose of utility software?

    -Utility software is designed to perform specific tasks to maintain the overall functionality and maintenance of a computer system, such as cleanup, antivirus scanning, and file compression.

  • What is a program library and how does it help programmers?

    -A program library, also known as a subroutine, is a collection of pre-written code snippets that can be reused by programmers to perform specific operations, reducing the time and effort needed to write code from scratch.

  • What is the role of a translator in system software?

    -Translators in system software convert human-readable code into machine-readable code. They can be either interpreters, which execute code line by line, or compilers, which translate the entire code into machine code at once.

  • What is the difference between an interpreter and a compiler?

    -An interpreter translates and executes high-level code line by line during execution, while a compiler translates the entire high-level code into machine code all at once before execution.

  • What is an Integrated Development Environment (IDE) and what features does it provide?

    -An Integrated Development Environment is a software that provides programmers with a single interface for code editing, debugging, and building capabilities. Features include pretty printing, context-sensitive prompts, dynamic syntax checking, and debugging tools.

  • How does Java's approach to program execution differ from traditional methods?

    -Java uses a distinct approach by compiling code into bytecode, which is then interpreted by the Java Virtual Machine during runtime, allowing for portability across different computers equipped with a Java Virtual Machine.

Outlines

00:00

💻 Introduction to System Software

James, a computer science graduate turned teacher, introduces the concept of system software in this video. He explains that system software is essential for a computer to function as it provides the platform for running application software and manages computer hardware resources. James discusses the evolution of system software, highlighting the transition from using punch cards and tapes to the modern operating systems (OS) that act as intermediaries between hardware and application software. He outlines the primary tasks of an OS, including providing a user interface, managing resources, and handling processes.

05:00

🛠️ Operating System Functions

This section delves deeper into the functionalities of an operating system. James explains that the OS is responsible for memory management, ensuring no two processes use the same memory location and optimizing memory usage. It also handles device management by installing device drivers, allowing hardware to communicate with the computer. File management is another key function, where the OS controls file naming conventions, directory structures, and access control mechanisms. Security management is also discussed, including data recovery, intrusion prevention, and data privacy. Lastly, the OS is tasked with error detection and recovery, ensuring system stability and data integrity.

10:02

🔧 Utility Software and Its Role

James moves on to discuss utility software, which is designed to perform specific tasks to maintain and enhance the functionality of a computer system. Examples include hard disk formatters, defragmenters, backup software, file compression tools, and virus trackers. Each utility software has a unique role, such as erasing data, optimizing hard disk performance, creating backup copies, compressing files, and ensuring system security. These tools are not run continuously but are initiated by the user or the OS when necessary, providing additional support to the overall system.

15:04

📚 Program Libraries and Their Utility

Program libraries, also known as subroutines, are collections of pre-tested code snippets that programmers can use to avoid rewriting common functions. These libraries save time and effort by allowing developers to integrate existing, functional code into their projects. The video explains the difference between static libraries, where the subroutine code is copied into the program, and dynamic link libraries (DLLs), which are loaded at runtime and shared among multiple programs. The advantages and disadvantages of both approaches are discussed, focusing on storage space, memory usage, and the potential for runtime linking delays.

20:06

🔗 Translators: Compilers and Interpreters

Translators are system software that converts human-readable code into machine-readable code. The video distinguishes between compilers and interpreters. Compilers translate the entire high-level code into machine code at once, while interpreters execute the code line by line during runtime. The discussion covers the advantages and disadvantages of each method for both programmers and users. Compilers are beneficial for creating executable files that can be distributed and run faster, but they require more development time. Interpreters allow for real-time error detection and are useful for debugging, but they may be less secure and slower due to the need to access the source code and interpreter each time the program runs.

25:09

🛠️ Integrated Development Environments (IDEs)

The final section of the video focuses on integrated development environments (IDEs), which are essential tools for programmers. IDEs provide a single interface for code editing, debugging, and building. James highlights features such as pretty printing for better code readability, context-sensitive prompts to save time, dynamic syntax checking, and code block expansion and collapsing for easier navigation. Debugging is also covered, explaining how IDEs include debuggers that allow developers to step through code and inspect variables, making it easier to identify and rectify errors. The video concludes with an invitation for viewers to ask questions and a teaser for the next video.

Mindmap

Keywords

💡System Software

System software refers to the type of computer program that provides a platform for running application software and manages computer hardware resources. It is the foundational layer of software that allows a computer to function, including operating systems, utility software, program libraries, language translators, and integrated development environments (IDEs). In the video, system software is described as the 'middleman' between hardware and application software, highlighting its crucial role in modern computing.

💡Operating System (OS)

An operating system (OS) is a type of system software that manages computer hardware, software resources, and provides essential services for computer programs. It acts as an intermediary between the user of a computer and the computer hardware. The video explains that before operating systems, users had to manually load programs and data using punch cards and tapes, which was inefficient. The OS simplifies this process, allowing for easier management of resources and execution of tasks.

💡User Interface

A user interface (UI) in the context of computing is the space where interactions between humans and computers take place. The video mentions two types of user interfaces: graphical user interface (GUI) and command-line interface (CLI). The GUI allows users to interact with the computer using graphics, such as icons on a desktop, while the CLI is often used by programmers and involves typing commands to communicate with the computer.

💡Resource Management

Resource management in operating systems refers to the allocation and management of computing resources such as memory, processing power, and storage. The video explains that the OS handles multiple processes that may be running simultaneously, ensuring each gets the necessary resources to function effectively. This includes scheduling processes to run in an orderly manner and resolving conflicts when two processes require the same resource.

💡Memory Management

Memory management is a critical function of the operating system that deals with the allocation and deallocation of memory during the execution of a program. The video discusses how the OS ensures no two processes use the same memory location and how it optimizes memory usage. It also touches on the concept of virtual memory, which allows a computer to use hard disk space as temporary RAM when the physical RAM is full.

💡Device Management

Device management is the process by which an operating system handles the installation and operation of hardware devices. The video mentions that the OS installs appropriate device drivers, which are software that allows hardware devices like keyboards and printers to communicate with the computer. This ensures that users do not have to manually find and install drivers for each device.

💡File Management

File management involves the way an operating system organizes, stores, and retrieves files on a computer. The video describes features such as file naming conventions, directory structures, and access control mechanisms. These features help users to manage their files effectively and ensure that only authorized users can access certain files or perform specific actions.

💡Security Management

Security management in operating systems is focused on protecting the system and data from unauthorized access, damage, and loss. The video explains that the OS handles data recovery, prevents intrusion through antivirus software, and ensures data privacy through encryption. This is crucial for maintaining the integrity and confidentiality of user data.

💡Error Detection and Recovery

Error detection and recovery is the process by which an operating system identifies and responds to errors or system failures. The video mentions that the OS should be capable of pausing an ongoing process and offering diagnostics when necessary. It must also be able to shut down the system systematically without data loss, ensuring the stability and reliability of the computer.

💡Utility Software

Utility software, as discussed in the video, is a type of system software designed to perform specific tasks that maintain and enhance the functionality of a computer system. Examples include disk formatters, antivirus scanners, and file compression tools. These utilities are not run continuously but are initiated by the user or the OS when necessary to perform tasks like cleaning up disk space or ensuring system security.

💡Integrated Development Environment (IDE)

An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. The video describes how IDEs offer features like code editing, debugging, and building capabilities within a single interface. IDEs like PyCharm and Visual Studio Code are essential tools for programmers, as they streamline the development process and provide tools like syntax highlighting, code completion, and debugging support.

Highlights

System software is the type of computer program that provides a platform for running application software and manages computer hardware resources.

Operating System (OS) is the core system software that controls the hardware and interacts with application software.

Before the OS, punch cards and punch tapes were used to start programs and data.

The OS acts as a middleman between hardware and application software.

The OS provides a user system interface, which can be graphical or command line.

The OS also provides a program-hardware interface, managing hardware for software use.

Resource management by the OS includes scheduling processes and allocating RAM and processing power.

Memory management by the OS ensures no two processes use the same memory location and optimizes memory usage.

Device management involves the OS handling the installation of device drivers.

File management features include file naming conventions, directory structures, and access control mechanisms.

Security management by the OS includes data recovery, preventing intrusion, and ensuring data privacy.

Error detection and recovery by the OS involve pausing processes and offering diagnostics in critical situations.

Utility software is designed to perform specific tasks for maintaining and enhancing computer system functionality.

Program libraries, also known as subroutines, are pre-written code snippets that can be integrated into other programs to reduce development time.

Translators convert human-readable code into machine-readable code, with interpreters executing line by line and compilers translating the entire code at once.

Integrated Development Environments (IDEs) provide features like code editing, debugging, and building capabilities within a single interface.

Pretty printing in IDEs uses color coding to represent different elements of code for better readability.

Context-sensitive prompts in IDEs save time by suggesting possible values as the code is typed.

Dynamic syntax checking in IDEs automatically corrects and notifies developers of errors in real-time.

Expanding and collapsing code blocks in IDEs help manage clutter and focus on specific parts of the code.

Debuggers in IDEs allow developers to track program execution step by step and inspect variables and expressions.

Transcripts

play00:00

have you ever wondered what type of

play00:01

software a computer must have to

play00:04

function so this is the topic for our

play00:07

video today which is called system

play00:09

software my name is James I'm a computer

play00:11

science graduate turn teacher and in

play00:14

this video series I want to give you a

play00:16

full a-level Computer Science Education

play00:19

so let's look into what is system

play00:21

software to Define it it is the type of

play00:23

computer program that provides a

play00:25

platform for running application

play00:27

software which is all the other software

play00:30

besides system software and manages

play00:32

computer hardware resources so all this

play00:36

different softwares here fall under the

play00:38

umbrella of what we call system software

play00:40

the OS utility software program Library

play00:44

language translator and eventually the

play00:46

IDE so let's look at what an operating

play00:49

system is so before the operating system

play00:52

was invented punch cut and punch tapes

play00:56

are the tools that are used to Start

play00:59

program and

play01:01

data this is what will happen when you

play01:04

want to use a computer with before the

play01:07

operating system error you have to put

play01:10

your program on a punch cut and data on

play01:11

a punch tape as the programmer or the

play01:14

user you have to insert these cards into

play01:17

what we call the card reader and tape

play01:19

reader respectively and you press a

play01:21

physical run button and once the program

play01:24

is run you'll get the output printed on

play01:27

the line printer as you can see this

play01:30

method is not really efficient because

play01:32

what you have multiple programs to run

play01:35

then you might have to do this all day

play01:38

long and this is exactly what happened

play01:41

in the era before operating

play01:44

system what the operating system do is

play01:47

that it controls the hardware and

play01:49

interact with the application software

play01:51

think of it like the middleman between

play01:53

the hardware and application software

play01:56

what the example that we discussed just

play01:58

now the human was the metan

play02:00

and now we are delegating the role to

play02:02

the operating system so let's look into

play02:05

some of the tasks carried out by the OS

play02:09

the first one is it provides a user

play02:11

system interface which is a interface

play02:15

that enables user to make the software

play02:17

and Hardware perform meaningful task

play02:19

think of it like a interface for us to

play02:22

communicate with our device and there

play02:25

are two types of user interface in your

play02:28

syllabus the first one is graphical user

play02:30

interface in which you interact with the

play02:33

computer using Graphics by pressing

play02:36

icons on your desktop for example the

play02:38

other way is called command line

play02:40

interface not a lot of people have used

play02:42

this but programmers will use this very

play02:44

often to communicate with the

play02:48

device the second task that operating

play02:51

system do is that it also provide a

play02:53

program Hardware interface think about

play02:56

it all the software that you use for

play02:58

example I use final card Pro to to

play02:59

record my video this software requires

play03:03

the usage of certain Hardware like

play03:05

computing power and RAM to

play03:08

run and what the OS does is that it

play03:12

manages Hardware it allocate hardware

play03:15

for software to be used so it ensures

play03:17

that software can effectively utilize

play03:20

Hardware capabilities to perform

play03:22

specific task and function so as a

play03:25

programmer if you are the creator of

play03:27

final cart Pro you do not need to know

play03:30

how Hardware functions you just need to

play03:33

follow certain procedure because

play03:35

operating system will allocate all the

play03:38

things for

play03:39

you the third thing that the OS do is

play03:42

that it manage resources so resources in

play03:44

this way refers to the computing power

play03:48

and also the memory there are many

play03:52

processes that can be running at the

play03:54

same time so process is a program that

play03:56

has begun

play03:57

execution process one could be your

play04:00

Google Chrome processor 2 could be your

play04:02

Spotify app Etc and these processors

play04:05

require RAM and processing power so the

play04:08

OS will be the one that allocate RAM and

play04:11

processing power to each process because

play04:14

it will know how much RAM it needs how

play04:16

much computing power it

play04:17

needs this is one of thing that the OS

play04:20

do so look at this diagram here the

play04:24

there are many process running but let's

play04:27

say the computer can only handle one

play04:29

process at a time this is when the OS

play04:31

coming into play

play04:33

they

play04:35

allocate time slot for each process to

play04:37

run which means that each process will

play04:40

get sufficient time sufficient resources

play04:43

to run it and it will also resolve

play04:46

conflict if two processes need to be

play04:48

running at the same time and for example

play04:51

here if process one and process two need

play04:52

to be running at the same time the OS

play04:55

will arrange it in a way that all right

play04:57

process one and run first followed by

play04:59

process two

play05:00

so this is a major Topic in operating

play05:03

system study but today we're not going

play05:05

very deep into it this thing is called

play05:08

scheduling the fourth thing that the

play05:10

memory do is called memory management so

play05:13

there are few aspect of memory

play05:14

management first of all the OS ensures

play05:17

that no two processors can attempt to

play05:22

use the same memory location so in this

play05:25

case if I have three processors all

play05:27

these three processors will be in a

play05:29

different location in the ram so that's

play05:32

the first one and the second one is the

play05:34

selection of the memory organization

play05:37

scheme it is also done by the operating

play05:40

system it aims to utilize optimize the

play05:43

utilization of restricted memory

play05:44

capacity such as employing virtual

play05:47

memory through paging or segmentation

play05:49

basically virtual memory is let's say

play05:52

you are running many programs and you

play05:54

don't have enough RAM so a virtual

play05:56

memory is part of the hard disk

play06:00

that is used to as a temporary RAM and

play06:05

the OS will be responsible for

play06:08

allocating all right this process you

play06:10

will use virtual memory for now and then

play06:12

the other second it will be used by

play06:14

another processes so this is what the OS

play06:18

does it do this automatically for us

play06:20

because so that the user doesn't have to

play06:23

worry about it the third one is

play06:25

optimizing memory usage ands making

play06:27

Choice regarding which processor should

play06:29

res in the me primary memory at a given

play06:31

moment which is something that I

play06:33

mentioned the OS will know whether

play06:36

process one and or process two needs the

play06:39

physical memory now if process one is

play06:42

more urgent they will allocate process

play06:43

one to have that instead of process two

play06:46

this is what the OS does in terms of

play06:49

memory

play06:50

management device management the

play06:52

operating system handles the

play06:54

installation of the appropriate device

play06:55

driver so device driver is a software

play06:58

that allows a certain hardware for

play07:01

example keyboard to communicate with the

play07:05

computer so the OS will help us to

play07:09

install all this device driver so that

play07:11

as a user you don't have to go and find

play07:13

the device driver for webcam for printer

play07:15

for keyboard these are all carried out

play07:17

by the operating

play07:19

system file management three main

play07:22

features here the file naming con

play07:25

convention so this is some of the

play07:26

experiment I did on my MacBook so if you

play07:29

will try to create two folders with the

play07:32

same name you will receive this warning

play07:35

again this action here is detected by

play07:39

the operating system it also control the

play07:42

OS also control the directory structure

play07:45

which is how you organize your files by

play07:47

creating folders so these are also

play07:49

features enabled by the operating system

play07:53

lastly is the access control mechanism

play07:55

it's a process of regulating and

play07:57

restricting access to data or resource

play08:00

ensuring that only authorized entities

play08:01

can access specific information or

play08:03

perform certain action so user control

play08:06

user management let's say three person

play08:08

is using this computer here and the OS

play08:12

will help you

play08:13

to set exact control for different

play08:17

people okay the last two Tas is the

play08:21

Security

play08:22

Management OS handle data recovery in

play08:25

cases of data losses usually via backup

play08:28

program and it prevent intrusion by

play08:31

installing antivirus anti-hacking

play08:34

software and it also ensures data

play08:36

privacy possibly by encrypting your data

play08:39

so that no one can read what is on your

play08:43

computer last but not least every

play08:45

detection and Recovery the operating

play08:47

system should be capable of pausing an

play08:49

ongoing process and offering error

play08:52

diagnostic when necessary in critical

play08:54

situation it must be able to

play08:56

systematically shut down the system

play08:58

without any data loss so this is the

play09:00

kind of protection that we do not see

play09:02

very often and yet they are done by the

play09:05

operating system so these are the seven

play09:07

feature user system interface program

play09:10

Hardware interface resource management

play09:13

and memory management device management

play09:16

file management Security Management

play09:18

error detection and recovery so these

play09:20

are all the things that the OS does so

play09:23

let's look into the second type of

play09:24

system software called the utility

play09:28

software like operating system utility

play09:31

software is a software designed to

play09:33

perform specific task so each utility

play09:36

software has a specific role so their

play09:39

purpose is to maintain the overall

play09:42

functionality and maintenance of a

play09:43

computer system something that they do

play09:46

include this cleanup antivirus scanning

play09:48

or file compression so it it's not

play09:52

executed during regular operation of the

play09:54

operating system but then it is a

play09:57

program that is initiated by us the user

play09:59

or the operating system when necessary

play10:02

so I want to show you a few examples of

play10:05

utility software the first one is the

play10:07

hard disk formatter and Checker so the

play10:09

formatter will erase all the data let's

play10:12

say you are buying a secondhand laptop

play10:15

this is what the hard disk formatter

play10:17

will do just erase everything formatt it

play10:20

second feature it establishes the file

play10:24

system on that this using a directory

play10:26

that link file recognized by the op OS

play10:28

to specific physical location so let's

play10:30

say you have two very important folders

play10:32

folder a and folder B what this software

play10:35

will do is that it will allocate

play10:37

physical memory let's say here and here

play10:39

on the disc for folder A and B

play10:42

respectively lastly is to divide the

play10:44

disc into logical drive if necessary so

play10:47

the first type of utility software is

play10:50

the hard dis formatter and Checker the

play10:52

second software is also related to all

play10:55

right before that hard this format and

play10:57

cheacker will also help to repair your

play10:59

disc so usually a disc is considered a

play11:02

flaw when a particular sector cannot be

play11:06

used to store data anymore and what this

play11:09

software does is that it will

play11:11

prevent this

play11:12

sector it it will either repair it or it

play11:16

will prevent this sector from being used

play11:18

to store data otherwise your data could

play11:20

get corrupted if it's stored in a wrong

play11:23

sector the second type of utility

play11:25

software related to hard dis is the

play11:27

defragment Tator def fragmentor which is

play11:30

something I believe I've mentioned in

play11:32

the previous video so what it does is

play11:34

that it organize the hard dis into

play11:38

proper form so that your hard disk can

play11:42

process data quicker so defragmentation

play11:45

happen when you are continuously

play11:48

creating modifying and removing files

play11:51

which leads to different files the data

play11:54

of it is separated is segregated into

play11:57

different location

play11:59

in this case here if you remember a hard

play12:02

disk drive they have something called a

play12:04

moving heads so when you want to move

play12:07

read data it'll just read from let's say

play12:09

I want to read the purple highlighted

play12:11

data the head will move from here to

play12:14

here to here in order to read all the

play12:17

data related to the purple highlighted

play12:20

file and by moving in this particular

play12:23

fashion it slows down the computer and

play12:27

it affects performance so a defragmenter

play12:30

will organize it so that the hard disk

play12:33

head doesn't have to move that much so

play12:37

it reorganized the fragmented data on

play12:39

the dis to improve its performance and

play12:42

speed the third type of utility software

play12:44

backup

play12:45

software it creates duplicate copies of

play12:48

files and data from a computer or

play12:50

network which can be used to restore the

play12:52

original data in case of data loss

play12:54

corruption or accidental deletion so how

play12:57

they achieve backup is that they set up

play12:59

a timetable for conducting backup

play13:01

creating exact copy of what you have and

play13:04

they'll generate a fresh backup file

play13:05

only when there's modification which

play13:07

means they will likely do it every once

play13:10

in a while because you're constantly

play13:11

changing data right so the third four

play13:14

type of utility software file

play13:16

compression I believe y'all have tried

play13:19

to diip file before for your information

play13:22

once you diip your file the file size of

play13:24

it will be reduced because this is what

play13:26

file compression software do they

play13:28

compress

play13:29

in a way that doesn't affect data

play13:31

performance so in this screenshot that I

play13:33

have taken when you compress this file

play13:36

what happened behind the hood is that

play13:38

the file compression software compress

play13:40

these three individual file into one

play13:43

archive file so you can try it on your

play13:45

computer if you want to fifth type of

play13:48

utility software the virus tracker it

play13:50

scans and detect malicious software and

play13:52

potentially harmful code within the

play13:54

files and programs to ensure security

play13:57

which is it is a program that runs

play14:00

continuously to check whether there is

play14:02

any malicious software that is on your

play14:04

computer running if if that's the case

play14:08

they will stop the process and even warn

play14:12

you if necessary so these are all

play14:14

utility software you can see that this

play14:17

software they enhances the functionality

play14:19

of a computer to make sure that you have

play14:21

a good experience using them so there

play14:25

two type of system software go back the

play14:27

first one is operating system syst

play14:29

followed by utility software now we're

play14:31

looking at program Library so program

play14:35

library is also called sub routine it

play14:38

can be a bit hard to grab if you haven't

play14:40

started coding yet but let me explain so

play14:43

think of some codes here let's say a

play14:47

programmer has written some codes that

play14:49

will be frequently used by other

play14:51

programmers as well so this is when the

play14:54

programmers will make this code a sub

play14:56

routine so that if other programmers

play14:59

want to write the exact same code they

play15:01

they don't have to write it from scratch

play15:04

they can you just write a line on their

play15:07

code Editor to use this chunk of

play15:11

software so this is exactly what subin

play15:14

are they're designed for specific

play15:16

operations written by some good

play15:18

programmer and then if the other

play15:20

programmers want to use it they can

play15:22

integrate into their own code reducing

play15:24

the time and effort needed by using

play15:25

pre-tested code snippits from a sub

play15:27

routine Library meaning this code has

play15:30

have been tested to be functional so

play15:34

they don't have to invent it from

play15:35

scratch

play15:37

again

play15:39

so as you know source code will

play15:42

eventually be converted into machine

play15:43

code because this is the only language

play15:47

that a computer

play15:48

can understand and the executable code

play15:52

cannot run independently must be linked

play15:54

with any utilized sub routin code which

play15:56

means that if the programmer uses some

play16:00

sub routine before you run before they

play16:03

run the code it has to be linked to

play16:06

where the sub routine was written and as

play16:09

a result the sub routine has to be

play16:13

copied over before it run it means that

play16:17

it will take up a lot more space it also

play16:20

increases memory usage when more than

play16:22

one process using the

play16:24

routine therefore to solve this problem

play16:28

a Dynamic link library is introduced so

play16:31

there a bunch of words here but let me

play16:33

explain it in a clear way so it is a

play16:36

collection of executable function and

play16:38

procedure that can be dynamically loaded

play16:40

and accessed by a program at runtime

play16:42

meaning you don't have to copy it over

play16:46

the advantage of this library is that

play16:49

the executable code only require a small

play16:51

code inclusion so instead of copying the

play16:54

entire source code into the program they

play16:57

only need to write a small code

play16:58

inclusion to indicate that hey I'm using

play17:00

this sub routine and this leads to

play17:03

reduce storage space and also reduce

play17:06

memory usage so when a new version of

play17:08

the routine is available it can be

play17:10

loaded into memory automatically

play17:12

upgrading any program using it one

play17:15

disadvantage of dynamic link library is

play17:19

that sometimes recir library is not

play17:21

available or it's incompatible and

play17:23

performance can be affected due to the

play17:25

need for runtime linking as we are

play17:27

linking our code with the sub routine so

play17:30

this can cause delay during program

play17:32

execution so this are some advantage and

play17:34

disadvantages that you need to

play17:38

understand and

play17:39

memorize okay the fourth type of system

play17:42

software which is

play17:44

needed in particularly in particular in

play17:47

programming which is translator I have a

play17:50

few lines of programming code here is

play17:52

written in Python for your information

play17:55

all this code will eventually be

play17:57

converted into to Z and one but which

play18:01

software does that right this is exactly

play18:04

what translator do it converts human

play18:07

readable code into machine readable

play18:10

code so there are two different types of

play18:13

translators the first one is interpreter

play18:16

how interpreter work is that it ex

play18:19

translate and execute high level code

play18:21

line by line during

play18:23

execution I have three lines of python

play18:25

code here I want to show you how it will

play18:27

be run

play18:29

so how it works first step the first

play18:31

line of the source code is process and

play18:33

then the line is analyzed in this case

play18:37

if an error is detected it is reported

play18:39

and the interpreted program will stop

play18:42

execution which means if in case of an

play18:45

error happening line two will not be run

play18:49

if there's an error on in line one line

play18:51

two will not be run because the

play18:52

interpretor will stop it if there's no

play18:55

Arrow the source code line is transform

play18:58

form into an immediate code intermediate

play19:00

code so the interpretor program employ

play19:02

this intermediate code to perform the

play19:04

necessary operation think of it like a

play19:06

stepbystep operation which will just

play19:10

execute a code until an error is

play19:14

reported and if there's no error step

play19:16

two all this step will be repeated for

play19:20

line number two until an error is

play19:23

repeated or until the program has

play19:26

terminated this is the first type of

play19:28

translator the second type of translator

play19:31

is called the compiler so instead

play19:34

of going through the code line by line

play19:38

they translate the entire high level

play19:40

code into machine code all at once so

play19:43

let me explain how this work the first

play19:46

line of the source code let's say this

play19:48

is the code is r and it will be analyzed

play19:52

like what happened in interpreter if an

play19:55

error is detected this is recorded So as

play19:58

compared to interpretor the program

play20:00

doesn't stop it it just

play20:02

records the arrrow and if no errors

play20:05

identified the source code line is

play20:07

transformed into an intimat code like

play20:09

what happened in

play20:11

interpretor so the only difference is

play20:13

that it doesn't stop when an error

play20:15

occurred it just keeps going until it

play20:18

finish compiling the whole program so

play20:21

when no errors are found in the entire

play20:23

source code the entirety of the

play20:25

intermediate code is translated into

play20:27

object code which is something that can

play20:28

be executed and if any error identifi a

play20:32

list of this error is generated as

play20:34

output and No Object code is produced so

play20:37

unlike inator execution of program can

play20:39

only begin when the compilation has

play20:41

shown no errors so in the previous

play20:44

example when we talk about interpretor

play20:46

if this line is okay they will just run

play20:49

the code directly but in this case not

play20:53

until

play20:55

the code has shown that it has no Arrow

play20:58

that it cannot run so I have listed some

play21:01

advantages and disadvantages for the

play21:04

programmer first and then for the user

play21:06

for the programmer identifier error can

play21:09

be recognized in real time and promptly

play21:11

rectified because it will stop when an

play21:14

error is detected so unlike compiler but

play21:17

the disadvantage is that in a specific

play21:20

program execution section of the code

play21:22

with syntax errow might remain

play21:24

inaccessible resulting in any lingering

play21:26

AG being detected only at a later stage

play21:29

and source code has to be distributed to

play21:31

the user which mean if the programmer

play21:33

has written this code and they want to

play21:35

Sol it to other people they have to

play21:37

distribute the entire source code to

play21:38

other

play21:39

people so as for the compiler the

play21:42

benefit of it is that because it will

play21:45

generate an executable

play21:48

file this means that instead of giving

play21:52

the purchaser the user the source code

play21:55

in case you want to keep it as private

play21:57

the executable file can be distributed

play21:59

to user without having them access to

play22:01

the source code so in interpretor you

play22:03

must give them the source code but in

play22:04

compiler you don't need but as a

play22:07

compiler requires more time for the

play22:09

initial development meaning it takes

play22:11

more time to write code that requires a

play22:14

compiler so that's the advantages and

play22:16

disadvantages for the programmer and for

play22:20

the user on the other

play22:22

hand the disadvantage of an interpreter

play22:25

is that every time an error free program

play22:26

is executed the interpretor and the

play22:29

source code need to be accessible

play22:31

meaning to run the code as a user you

play22:33

need the source code you need the

play22:35

interpretor so that's a disadvantage for

play22:38

compiler the advantage for the user is

play22:41

that the execution speed achiever we

play22:44

compile object code exit what can be

play22:46

obtained by an integrator code you can

play22:48

run it faster you can run the executable

play22:52

code faster than as compared to using

play22:55

interpretor because it's no longer

play22:58

interpr line by line it's just just run

play23:01

it and as for the compiled program only

play23:03

the object code has to be available each

play23:05

time an arror free program is run

play23:08

meaning you don't need a compiler as a

play23:10

user to run the code the disadvantage is

play23:14

that it is less secure because it could

play23:16

contain a virus someone could put a

play23:18

virus into the executable code so that's

play23:21

some differences between interpreter and

play23:23

compiler so irrespective of whether an

play23:26

interpretor or compiler is deployed a

play23:28

program can only be executed on specific

play23:30

computer with a specific processor if

play23:33

The Interpreter of compiler program has

play23:35

been tailored for that particular

play23:36

processor so that's the

play23:39

requirement if the option exists meaning

play23:42

if you can choose the preference for an

play23:44

interpretor during program development

play23:46

is warranted due to following reason a

play23:49

single error in the code can trigger the

play23:50

occurrence of multiple additional error

play23:53

and because of that you want to identify

play23:55

and rectify error as soon as possible

play23:58

which is something that interpreter can

play23:59

do because it interpret codes line by

play24:02

line and the debugging to integrator

play24:04

with The Interpreter expedite this

play24:07

process of course if the compiler the

play24:10

usage of compiler will be justified if

play24:13

the program is a sh of minimum errors in

play24:14

the program which mean you don't think

play24:17

there's any error all right so a

play24:18

compiler allow for the creation of an

play24:20

executable file that can be distributed

play24:23

for gener use result in Faster execution

play24:26

so they might be a bit slow to develop

play24:29

but then as the user you can execute it

play24:31

a lot

play24:32

faster so this is some facts about Java

play24:36

when Java is developed it introdu a

play24:37

distinct approach to its utilization

play24:40

requiring a Java virtual machine

play24:42

specific to each type of computer upon

play24:45

writing a Java program is initially

play24:46

compiled into Java by code which is then

play24:49

interpreted by Java virtual machine

play24:51

during runtime so in this case here Java

play24:54

is using both compiling and compilers

play24:57

and interpretor the portability of java

play24:59

B code enables it transfer to any

play25:02

computer equipped with a Java virtual

play25:04

machine so the last part that's all for

play25:09

translator it translate programming

play25:11

language code into binary code so the

play25:15

last

play25:15

thing last example of a system software

play25:18

is the integrated development

play25:20

environment so it is a software that

play25:22

programmers need to develop software

play25:28

yeah so it provides the following

play25:30

features code editing debugging and

play25:32

building capabilities all within a

play25:34

single interface some example include

play25:36

pycharm and visual studio code so in

play25:39

this section I just want to show you

play25:41

some of the feature of an IDE so that

play25:44

when you start programming you don't

play25:45

take them for granted you know that it's

play25:47

done by the ID first feature the pretty

play25:50

printing so I have an example of a uh

play25:54

python code here as you can see the

play25:59

colors

play26:00

here they are used deliberately to

play26:03

represent different think so for example

play26:06

the commment is in green the keyword is

play26:09

in blue and the variable name is in

play26:13

Black for PRD printing they also allow

play26:16

automatic indentation to allow you to

play26:18

see your program in a better view

play26:21

colorcoded data type also part of it

play26:24

predy printing second thing context

play26:27

sensitive

play26:28

prompt for example I created two

play26:30

variable number one and number two if I

play26:32

want to pren out number one instead of

play26:35

typing the entire

play26:36

thing I just need to type the first

play26:39

character and then it will show me what

play26:42

are the possible values that I want to

play26:44

type in and this save time when you are

play26:47

coding Dynamic syntax check so for

play26:51

example if I were to make a typo error

play26:53

in my code it will automatically correct

play26:56

me

play26:58

and let me know what is going on so that

play27:01

I don't have to proofread it myself in

play27:04

this example it's the same Dynamic

play27:06

syntax track expanding and collapsing

play27:09

code block so initially this is the

play27:12

entire code for the play function and if

play27:15

you want to remove clutter to and to

play27:17

focus on other aspect of the code you

play27:21

can simply collapse or expand it anytime

play27:23

you want to lastly it's about debugging

play27:27

a debugger in an IDE can help identify

play27:29

and rectify error or box in a code by

play27:31

allowing developers to track the

play27:33

execution of program step by

play27:36

step and inspect variables and

play27:38

expression and different points so a

play27:41

debugger is usually included in an IDE

play27:44

and that helps you to debug debug means

play27:47

to find errors in your code easily by

play27:50

going through the code line by line so

play27:53

this is all about IDE and this is also

play27:57

all about system software I hope you

play27:59

learn a lot from this let me know in the

play28:01

comment section if you have any question

play28:03

and I'll be hope I'll hope to answer

play28:05

that and I'll see you in the next video

play28:07

thank you for

play28:08

watching

Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
System SoftwareComputer ScienceOperating SystemUtility SoftwareSoftware EducationHardware ManagementProgramming ToolsIDE FeaturesMemory ManagementSoftware Development
هل تحتاج إلى تلخيص باللغة الإنجليزية؟