Everybody welcome to the next video.
So in this video we're gonna be going over what compilers are.
So what does a Compiler Compiler as an application use to convert source code in the machine code or
also now known as binary code now machine code can only be executed by the specific CPO.
Now there are different languages that perform a compilation which is what is called a slightly different
ways.
So you've got two different variations you have something called ahead of time compilation and then
just in time compilation.
There's also interpreters which want to go over last but we're going to briefly touch on both of these
types of compilers so AoE 2 are ahead of time compilation that is commonly used with C assembly.
Pascal This is complete when the machine when Source Code is compiled using peyote type of compiler.
It compiles it for the specific machine that it's installed on.
So if you compile this on Mac OS X you're going to get a compiled code for machine code that's designed
for Mac OS X.
Same thing for windows.
Same thing for Ubuntu.
Carly whatever type you want it's going to use a lot more disk space and a lot more memory.
However it's much faster on starting up.
This is why the OS most OS is written and seen how they used to be written and straight Assembly.
However C is taken over for that however assembly is still in play because there's some things that
SI can't touch that they need assembly for now.
Again this is designed to run on a specific platform.
This is why you have different installers for let's say sublime.
If you went through that that's why there's different installers for them now.
I.T. or Justin Time compilation is commonly used with Java and C sharp.
This is used to compile the application on the fly.
Now what I mean by that is what happens is.
Here you compile the application on your machine right.
Let's take Java as an example.
So you compile your source code on your machine to build your application.
What that does is that can that converts to your source code to bite code.
Now byte code is universal but in the Java interpreter is at or the JVM.
The Java Virtual Machine is what's actually able to interpret the byte code and convert that on the
fly into machine code and actually execute it as it's as it's being ran.
Which is why Java has a lot of high use and memory.
If it's not written correctly now understand the two differences between these they're important to
understand which ones used where and when it's used so we're going to touch briefly on interpreters
so interpreter used for languages like Python Ruby Perl.
They don't convert them directly to machine code.
So what happens is as it performs pretty processing on the code which converts into an intermediate
level code similar to how byte code is for Java and then that code has been passed to an interpreter
which actually executes the instructions from top to bottom.
That's why when you run scripts such as Python scripts which we've we'll be going over in that module
you will see that it loads from top to bottom and that's that's the reasoning for this.
So this is a brief explanation of how interpreters work.
We're gonna go over Lincoln's and a few other things in this particular module and how they work.
However you're going to get a chance to work with an interpreter.
When we go over python and you're going to get a chance to work with a compiler and a linker in the
assembly module.