A compiled language is one where the program, once compiled, is expressed in the instructions of the target machine. For example, an addition "+" operation in your source code could be translated directly to the "ADD" instruction in machine code.

An interpreted language is one where the instructions are not directly executed by the target machine, but instead read and executed by some other program (which normally is written in the language of the native machine). For example, the same "+" operation would be recognised by the interpreter at run time, which would then call its own "add(a,b)" function with the appropriate arguments, which would then execute the machine code "ADD" instruction.

You can do anything that you can do in an interpreted language in a compiled language and vice-versa - they are both Turing complete. Both however have advantages and disadvantages for implementation and use.

I'm going to completely generalise (purists forgive me!) but, roughly, here are the advantages of compiled languages:

  • Faster performance by directly using the native code of the target machine
  • Opportunity to apply quite powerful optimisations during the compile stage

And here are the advantages of interpreted languages:

  • Easier to implement (writing good compilers is very hard!!)
  • No need to run a compilation stage: can execute code directly "on the fly"
  • Can be more convenient for dynamic languages

Note that modern techniques such as bytecode compilation add some extra complexity - what happens here is that the compiler targets a "virtual machine" which is not the same as the underlying hardware. These virtual machine instructions can then be compiled again at a later stage to get native code (e.g. as done by the Java JVM JIT compiler).

Answer from mikera on Stack Overflow
๐ŸŒ
Medium
medium.com โ€บ @prayag-sangode โ€บ understanding-programming-languages-compiled-bytecode-and-interpreted-languages-b3999b9a4da8
Understanding Programming Languages: Compiled, Bytecode, and Interpreted Languages | by Prayag Sangode | Medium
October 29, 2024 - Execution by JVM The bytecode in HelloWorld.class is loaded by the Java Virtual Machine (JVM), which interprets or JIT-compiles it into machine code for execution. C# Language(Bytecode Language) Code Example (source code):
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ compiler design โ€บ difference-between-compiled-and-interpreted-language
Difference between Compiled and Interpreted Language - GeeksforGeeks
July 12, 2025 - Types of compiled language - C, C++, C#, CLEO, COBOL, etc. An interpreted language is a programming language that is generally interpreted, without compiling a program into machine instructions.
People also ask

Which programming languages are commonly interpreted?

Some popular interpreted languages include Python, JavaScript, Ruby, Perl, and PHP. These languages are widely used in web development, scripting, and automation tasks due to their ease of use and quick development process.

๐ŸŒ
lenovo.com
lenovo.com โ€บ home
An Introduction to the World of Interpreted Languages | Lenovo US
How does an interpreted language differ from a compiled language?

In an interpreted language, the code is executed line by line, while in a compiled language, the entire code is converted into machine language before execution. This means that interpreted languages offer more flexibility in terms of modifying and testing code on the fly.

๐ŸŒ
lenovo.com
lenovo.com โ€บ home
An Introduction to the World of Interpreted Languages | Lenovo US
What are the advantages of using an interpreted language?

One advantage is that you can write code and see the results immediately, making it great for prototyping and iterative development. Interpreted languages also tend to have simpler syntax and are often easier to learn compared to compiled languages.

๐ŸŒ
lenovo.com
lenovo.com โ€บ home
An Introduction to the World of Interpreted Languages | Lenovo US
๐ŸŒ
Python.org
discuss.python.org โ€บ python in education
Definitions of โ€œinterpreted languageโ€ and โ€œcompiled languageโ€ with explanations of why Python and Java are or are not such languages - Python in Education - Discussions on Python.org
September 6, 2024 - iโ€™m not sure whether this belongs in the education category or a more general category. iโ€™m dissatisfied with the definitions of โ€œinterpreted languageโ€ and โ€œcompiled languageโ€ that i have seen. as an educator, i need to explain these concepts to students. many people classify the programming languages python and java differently for these two terms. often java is classed as compiled but not interpreted and python as interpreted but not compiled. for me, this seems to require splitting hairs...
๐ŸŒ
ScienceDirect
sciencedirect.com โ€บ topics โ€บ computer-science โ€บ interpreted-language
Interpreted Language - an overview | ScienceDirect Topics
An interpreted language is a programming language in which a program is executed directly from the source code by a program called an interpreter, rather than being translated into machine-readable binary code by a compiler before execution.
๐ŸŒ
Educative
educative.io โ€บ blog โ€บ compiled-vs-interpreted-language
Compiled vs interpreted language: Basics for beginning devs
March 10, 2026 - Compiled languages favor speed: A compiler converts the full program to native machine code ahead of time, producing fast, platform-dependent executables (e.g., C, Go, and Rust). Interpreted languages favor flexibility: An interpreter translates and runs each instruction during execution, making debugging and iterative changes simpler at the cost of slower performance (e.g., Python, JavaScript, and Ruby).
๐ŸŒ
BYJUS
byjus.com โ€บ gate โ€บ difference-between-compiled-and-interpreted-language
Difference between Compiled and Interpreted Language
November 9, 2022 - ... An interpreted language is also a programming language that is commonly interpreted. In this, the implementations perform instructions directly and easily, without compiling a program into machine-language instructions.
Find elsewhere
๐ŸŒ
TheServerSide
theserverside.com โ€บ answer โ€บ Interpreted-vs-compiled-languages-Whats-the-difference
Interpreted vs. compiled languages: What's the difference? | TheServerSide
April 15, 2021 - Interpreted code is compiled into an intermediary that runs on any architecture. But this clear distinction tends to fade when you examine the exact features and potential capabilities of any individual programming language.
Top answer
1 of 13
525

A compiled language is one where the program, once compiled, is expressed in the instructions of the target machine. For example, an addition "+" operation in your source code could be translated directly to the "ADD" instruction in machine code.

An interpreted language is one where the instructions are not directly executed by the target machine, but instead read and executed by some other program (which normally is written in the language of the native machine). For example, the same "+" operation would be recognised by the interpreter at run time, which would then call its own "add(a,b)" function with the appropriate arguments, which would then execute the machine code "ADD" instruction.

You can do anything that you can do in an interpreted language in a compiled language and vice-versa - they are both Turing complete. Both however have advantages and disadvantages for implementation and use.

I'm going to completely generalise (purists forgive me!) but, roughly, here are the advantages of compiled languages:

  • Faster performance by directly using the native code of the target machine
  • Opportunity to apply quite powerful optimisations during the compile stage

And here are the advantages of interpreted languages:

  • Easier to implement (writing good compilers is very hard!!)
  • No need to run a compilation stage: can execute code directly "on the fly"
  • Can be more convenient for dynamic languages

Note that modern techniques such as bytecode compilation add some extra complexity - what happens here is that the compiler targets a "virtual machine" which is not the same as the underlying hardware. These virtual machine instructions can then be compiled again at a later stage to get native code (e.g. as done by the Java JVM JIT compiler).

2 of 13
114

A language itself is neither compiled nor interpreted, only a specific implementation of a language is. Java is a perfect example. There is a bytecode-based platform (the JVM), a native compiler (gcj) and an interpeter for a superset of Java (bsh). So what is Java now? Bytecode-compiled, native-compiled or interpreted?

Other languages, which are compiled as well as interpreted, are Scala, Haskell or Ocaml. Each of these languages has an interactive interpreter, as well as a compiler to byte-code or native machine code.

So generally categorizing languages by "compiled" and "interpreted" doesn't make much sense.

๐ŸŒ
DEV Community
dev.to โ€บ gridou โ€บ interpreted-vs-compiled-languages-understanding-the-difference-4ak8
Interpreted vs. Compiled Languages: Understanding the Difference - DEV Community
March 13, 2025 - Additionally, some languages use hybrid approaches that balance flexibility and performance. An interpreted language executes code line by line, translating it into machine instructions at runtime.
๐ŸŒ
Lenovo
lenovo.com โ€บ home
An Introduction to the World of Interpreted Languages | Lenovo US
Interpreted languages like Python have gained popularity in the field of data analysis and scientific computing. With libraries such as NumPy, Pandas, and SciPy, Python provides powerful tools for tasks like data manipulation, statistical analysis, and machine learning. Yes, interpreted languages can interact with system resources and APIs through libraries and frameworks.
๐ŸŒ
HandWiki
handwiki.org โ€บ wiki โ€บ Interpreted_language
Interpreted language - HandWiki
February 8, 2024 - An interpreted language is a type of programming language for which most of its implementations execute instructions directly and freely, without previously compiling a program into machine-language instructions.
๐ŸŒ
Wikipedia
en.wikipedia.org โ€บ wiki โ€บ Interpreter_(computing)
Interpreter (computing) - Wikipedia
2 weeks ago - Before the widespread adoption of interpreters, the execution of computer programs often relied on compilers, which translate and compile source code into machine code. Early runtime environments for Lisp and BASIC could parse source code directly. Thereafter, runtime environments were developed for languages (such as Perl, Raku, Python, MATLAB, and Ruby), which translated source code into an intermediate format before executing to enhance runtime performance.
๐ŸŒ
Wikipedia
en.wikipedia.org โ€บ wiki โ€บ List_of_programming_languages_by_type
List of programming languages by type - Wikipedia
2 weeks ago - Known as REPL - Interactive mode ... of their evaluation seen immediately. ... Interpreted languages are programming languages in which programs may be executed from source code form, by an interpreter....
๐ŸŒ
IBM
ibm.com โ€บ docs โ€บ en โ€บ zos-basic-skills
Compiled versus interpreted languages
During the design of an application, you might need to decide whether to use a compiled language or an interpreted language for the application source code.
๐ŸŒ
C2
wiki.c2.com
Interpreted Language
This site uses features not available in older browsers
๐ŸŒ
Reddit
reddit.com โ€บ r/learnpython โ€บ understanding what it means to be an "interpreted language"
r/learnpython on Reddit: Understanding what it means to be an "Interpreted Language"
January 28, 2025 -

Python is what is called an "interpreted language," meaning that the code is compiled on-the-fly when a code is executed. Although this slows things down, the usually benefit sites say is that this means Python code is more readily sharable.

However, I am confused by how it makes the code more sharable. Here is my point of view: if you go on Unity's website, there is a version for download for Mac, Linux, and Windows; each of these use a different operating system, I understand why Unity has a different version for each of these, since the program must work in a way the operating system understands.

However, all three versions will still use C# (the coding language Unity uses), which means that a C# script file can be shared across Mac, Windows, and Linux, and still work on Unity, making C# an Interpreted Language as well, since it is sharable. This is obviously not true, but thus my confusion: What does it mean to be an interpreted language in the context of my example? In terms of shareability, C# is no different.

I am also new to computers, so maybe there is something obvious that my textbook fails to elaborate on.

Top answer
1 of 5
6
C# is compiled to an intermediary language called the Common Intermediate Language (CIL) bytecode which is then JIT compiled at runtime by the runtime running on the system (either the .NET runtime on Windows or the Mono runtime). This allows the same C# code to run on any system which is running one of those runtimes, similar to how Python can run on any system with a correct Python interpreter installed. Note that interpreted does not mean compiled on the fly. A JIT compiler like what C# uses will compile the CIL bytecode into native machine code at runtime and will then run that. The interpreter CPython uses compiles the Python source code into bytecode at runtime, then interprets that bytecode line by line. Older interpreters would run down the source code line by line and run each one with no compilation step anywhere. A sort of hierarchy from most compiled to most interpreted would be A language like C which compiles the source code into machine code, and then that machine code is distrubuted A language like C# which compiles the source code to bytecode, that bytecode is distributed, and then that bytecode compiled to machine code and run by the runtime A language like Python which requires you to distribute the source code, compiles the source code at runtime into bytecode, and then executes that bytecode Older interpreters like the original ones for BASIC which would require you to distribute the source code and then the computer would execute the actual source code line by line. The problem with this is there are many more in between. There is no real line between compiled and interpreted, it's very blurry nowadays.
2 of 5
6
I think your confusion stems from not realizing that the Python interpreter is a binary or executable file. All the operating system specifics are handled when Python is installed. When you write a Python program, youโ€™re writing instructions for the Python interpreter to followโ€”similar to a cooking recipe that isnโ€™t tied to a specific kitchen setup. The kitchen can be structured differently, but the recipe remains the same, making it sharable.
๐ŸŒ
freeCodeCamp
freecodecamp.org โ€บ news โ€บ compiled-versus-interpreted-languages
Interpreted vs Compiled Programming Languages: What's the Difference?
January 10, 2020 - When you're ready to make hummus, your friend sits next to you and translates the recipe into English as you go, line by line. In this case, your friend is the interpreter for the interpreted version of the recipe. Compiled languages are converted directly into machine code that the processor can execute.
๐ŸŒ
PrepBytes
prepbytes.com โ€บ home โ€บ general โ€บ what is interpreted language?
What is Interpreted Language?
November 29, 2023 - An Interpreted Language is a Programming language in which the code is executed line by line by the interpreter. They differ from Compiled Languages.
๐ŸŒ
DEV Community
dev.to โ€บ codemouse92 โ€บ what-is-an-interpreted-language-3fef
What Is an Interpreted Language: What Is An "Interpreted" Language? - DEV Community
September 2, 2019 - If a program is compiled (cross-compiled?) to bytecode, which is then translated to machine code immediately prior to it being run, then it is the bytecode which is the interpreted language, not the language in which the original source code was written.
๐ŸŒ
Engineering LibreTexts
eng.libretexts.org โ€บ bookshelves โ€บ computer science โ€บ operating systems โ€บ think os - a brief introduction to operating systems (downey) โ€บ 1: compilation
1.1: Compiled and interpreted languages - Engineering LibreTexts
December 2, 2020 - First, many languages can be either compiled or interpreted. For example, there are C interpreters and Python compilers. Second, there are languages like Java that use a hybrid approach, compiling programs into an intermediate language and then running the translated program in an interpreter.