whats the difference between a programming language and a scripting language

a scripting language is a usually higher-level language that, when you “run” it, you pass your source code to a virutal machine (a special already-running program on your computer) that interprets it and runs preprogrammed subroutines such that its behavior matchs what the input source dictates

a compiled language involves passing source files to a compiler, assembler, and possibly linker that translates it into binary machine code that can be executed

the runtime virtual machines like pvm and jvm that run python & java are both written in compiled languages.