1

00:00:01,050  -->  00:00:07,280
Hi there we know that platform independence is one of the key benefits of jello.

2

00:00:07,740  -->  00:00:13,470
But before understanding how jolly to use black comedy Burnetts we need to first understand what black

3

00:00:13,470  -->  00:00:17,260
from dependency is to understand back home dependency.

4

00:00:17,280  -->  00:00:24,090
We also need to know what abolitionists compulsion is a very fundamental concept in computer science

5

00:00:24,090  -->  00:00:24,590
.

6

00:00:24,810  -->  00:00:30,150
If you are new to programming or not completely sure about what compulsion is the short discussion on

7

00:00:30,150  -->  00:00:33,660
compilation should be helpful.

8

00:00:33,660  -->  00:00:37,340
Let's start with the absolute basic concepts of a computer.

9

00:00:37,980  -->  00:00:40,780
Every computer has a fixed set of instructions.

10

00:00:40,800  -->  00:00:47,550
The chip on the stunts on a computer program is made up off some of these instructions.

11

00:00:47,550  -->  00:00:53,130
That is the instructions help a computer program will form something meaningful.

12

00:00:53,190  -->  00:01:00,360
Each instruction is basically a sequence off zeroes and once that is an instruction has it binary format

13

00:01:01,680  -->  00:01:03,650
such instructions that computer understands.

14

00:01:03,720  -->  00:01:06,070
It's called machine language.

15

00:01:06,060  -->  00:01:11,670
That is the language which a machine understands machine language is also referred to as machine code

16

00:01:12,030  -->  00:01:15,230
and this sometimes also referred to as native code.

17

00:01:15,750  -->  00:01:20,780
And here's an example of machine instruction which does the program to do something.

18

00:01:21,370  -->  00:01:27,690
Not as you may imagine it would be an extremely difficult task for programmers to write programs in

19

00:01:27,690  -->  00:01:31,580
machine language which how only zeros and ones.

20

00:01:31,770  -->  00:01:34,810
So it's got to be simpler than this.

21

00:01:35,010  -->  00:01:41,280
So computer scientists came up with another language called assembly language which was much more easier

22

00:01:41,370  -->  00:01:43,090
to read and write.

23

00:01:43,740  -->  00:01:50,270
Here's an example to add to them first which for sure is much more explicit than machine code.

24

00:01:50,430  -->  00:01:56,080
So assembly language but a Whites Soden higher level rubescens horror writing instructions.

25

00:01:56,370  -->  00:02:03,660
But computers understand only machine language they don't understand assembly language so that is a

26

00:02:03,660  -->  00:02:09,870
program called assembler which translates assembly language instructions to machine language instructions

27

00:02:10,170  -->  00:02:12,440
which a computer can't understand.

28

00:02:13,140  -->  00:02:18,450
No but machine language on assembly language are referred to as low level languages.

29

00:02:18,810  -->  00:02:22,890
And that's because they use low level details of the computer.

30

00:02:22,890  -->  00:02:30,180
One example would be specifying the memory location where we are storing data and writing programs even

31

00:02:30,180  -->  00:02:37,250
in assembly language is still tedious supercop on most wanted programs to be expressed in a more easier

32

00:02:38,010  -->  00:02:42,040
and they also wanted to hide the low level details.

33

00:02:42,750  -->  00:02:50,280
So in time that came up with high level languages I'm some example high level languages in Fortran C

34

00:02:50,340  -->  00:02:51,290
C++.

35

00:02:51,570  -->  00:02:58,770
Our very own Java and C-Sharp and they use English like words mathematical notations and punctuations

36

00:02:58,800  -->  00:03:05,320
to write programs so that much easier to write and read as we will see in this course.

37

00:03:05,680  -->  00:03:09,920
And of course they also hide low level details of the computer.

38

00:03:10,060  -->  00:03:14,880
So could it be mostly use only high level programming languages.

39

00:03:14,880  -->  00:03:19,840
Assembly language is not used very much and is used only where performance is critical.

40

00:03:20,040  -->  00:03:26,590
Like in the case of operating systems or electronic devices and in terms of terminology.

41

00:03:26,590  -->  00:03:32,370
Sourcecode is a term that is used to refer to any code which is expressed in any programming language

42

00:03:32,370  -->  00:03:32,970
.

43

00:03:33,510  -->  00:03:35,360
Not like in the case of assembly language.

44

00:03:35,430  -->  00:03:39,280
Source code cannot also be understood by a computer.

45

00:03:39,510  -->  00:03:44,070
So we need to translate source code into machine language.

46

00:03:44,430  -->  00:03:50,550
The transmission from source code to machine code is done by a program called compiler machine code

47

00:03:50,640  -->  00:03:56,610
which is the executable program is then executed directly by CPQ in a separate step.

48

00:03:56,610  -->  00:04:02,340
Note that in this illustration we are calling the translator language as target language or not machine

49

00:04:02,340  -->  00:04:03,230
language.

50

00:04:03,510  -->  00:04:07,950
And that's because in some cases it may be something else too.

51

00:04:07,950  -->  00:04:14,850
For example in the case of C or C++ hardit language would be machine called Hollywood Angelas Yes it

52

00:04:14,850  -->  00:04:18,660
is Java bytecode which will be discussed later.

53

00:04:18,660  -->  00:04:24,130
Sometimes not a good language can also be another programming language.

54

00:04:24,300  -->  00:04:30,870
There are some code operations that a compiler performs on let's see what those are really fine syntax

55

00:04:30,900  -->  00:04:34,060
and semantics of the sourcecode is one of them.

56

00:04:34,080  -->  00:04:39,120
This ensures that the source code complies with the rules of the programming language.

57

00:04:39,120  -->  00:04:45,730
For example a program is made up of statements and in case of Java every statement must end with this

58

00:04:45,730  -->  00:04:47,140
inequality.

59

00:04:47,160  -->  00:04:53,280
Now if a statement doesn't end with a semicolon then the compiler detects it as a syntactic error unreported

60

00:04:53,310  -->  00:05:01,610
to the upper compiler also performs certain code optimizations for faster execution.

61

00:05:02,070  -->  00:05:07,120
Finally it generates machine code from the intermediate optimized core.

62

00:05:07,530  -->  00:05:14,680
A compiler is a pretty complex program and these core operations are basic operations that any compiler

63

00:05:14,680  -->  00:05:15,730
supports.

64

00:05:15,960  -->  00:05:21,870
As you will see in this course it Djala compiler performs tons of additional operations to ease the

65

00:05:21,870  -->  00:05:28,300
program much dusk so the completion process can be slow due to the complexity and translation.

66

00:05:28,680  -->  00:05:35,940
However once compiled machine code execution will be very fast on the machine code can be executed anytime

67

00:05:36,180  -->  00:05:38,200
on any number of things.

68

00:05:38,340  -->  00:05:42,600
Any change to the source code requires complete recompilation.

69

00:05:42,600  -->  00:05:48,800
Next we a look at platform dependency which will also give you an idea on how a C program is compiled

70

00:05:48,820  -->  00:05:49,440
on Windows.

71

00:05:49,440  -->  00:05:54,960
On Linux machines you're not going to write any code for this discussion but towards the end of the

72

00:05:54,960  -->  00:06:00,210
chapter we will write compile and execute our first Gela program.

73

00:06:00,230  -->  00:06:06,750
So in this chapter we will write only one program but as a cost progresses we will write lots and lots

74

00:06:06,750  -->  00:06:12,610
of programs on every concept that we learn will be demonstrated through them or grow grass.

75

00:06:12,750  -->  00:06:13,830
So that's about it.

76

00:06:13,980  -->  00:06:14,590
Thank you.

77

00:06:14,640  -->  00:06:16,890
Our next move will look at black from dependency
