Python is interpreted language or compiled language

Lets start this discussion with definition of interpreted or compiled language followed by understand the same in context of python.
Compiled languages are those languages where source code is converted into native/machine one and that native piece of code is executed at run time and software/program unit we use for such languages are called compiler. Example: C,C++.
Interpreted languages are those one where source code is executed line by line at run time and software/program unit we use for such languages are called interpreter.Example: JavaScript, PHP. 
Interpreted languages are very popular in web application because same web page will open in Linux and windows.Imagine, c++ code in web application it will create a havoc and it may not work due to compilation failure, platform dependent. Here comes interpreted language for rescue and it just follows the instruction and execute line by line source code at all platform.
  • Compiled language or interpreted language are not well defined. Any language can be made complied or interpreted one, it depends on the design and implementation of that language. Design of the languages make them unsuitable for native code generation. 
  • It is very possible to create an interpreter for every compiled language, but the reverse is impossible.
There exist a third category where languages are neither purely compiled or purely interpreted. These languages generate an intermediate representation (called bytecode) and later that bytecode is interpreted by interpreter.These languages take advantages of compiled language (machine instructions, faster execution) and interpreted language(platform independence and suitable for scientific work). Languages like Java, Python,Ruby falls under this category.
In general terminology, these languages are termed as interpreted languages just because intermediate representation is not compiled machine/native code,it's just group of byte code instructions which executes faster than source code and slower than machine/native code.
As concluding remarks, Python(Cpython) is neither a true compiled time nor pure interpreted language but it is called interpreted language.  

Lets understand this intricacy of intermediate representation in context of python(Cpython) :
When python program say is executed it generates something.pyc as intermediate representation called bytecode(it is platform independent) and in turn python interpretor executes something.pyc file. Above processes can be depicted in following diagram:
Source file to bytecode generation followed by its interpretation  in python(Cpython)

  1. CPython has been designed to compile as fast as possible performing very little error checking and optimization, so it can run fast and in small amounts of memory. 
  2. User is unaware of the intermediate .pyc generation. It is generated automatically and transparently whenever needed, without the user intervention.
    If .pyc file is not there it will be generated automatically.
    else, modification timestamp(magic number) of .py and .pyc is matched, if it varies it will create new .pyc file else older one will be executed. 
Similarly, other implementation of IronPython which compiles to CLR codes, Jython to JVM codes and executed by appropriate "virtual machines" also known as "interpreters" -  the .Net runtime and the Java VM respectively.
How does python is different from java in terms of intermediate code generation?
Java does not perform automatic compilation.During compilation java does more complex work in order to check errors more thoroughly and perform more optimizations.
Reference : Compiled and interpreted languages pros and cons


  1. Write more about Java.. by the way your all post are very informative and explained clearly.. Keep it up..

  2. Thanks for sharing the Information !
    Do online courses and become expert
    I would like to recommend

    1. The development of artificial intelligence (AI) has propelled more programming architects, information scientists, and different experts to investigate the plausibility of a vocation in machine learning. Notwithstanding, a few newcomers will in general spotlight a lot on hypothesis and insufficient on commonsense application. machine learning projects for final year In case you will succeed, you have to begin building machine learning projects in the near future.

      Projects assist you with improving your applied ML skills rapidly while allowing you to investigate an intriguing point. Furthermore, you can include projects into your portfolio, making it simpler to get a vocation, discover cool profession openings, and Final Year Project Centers in Chennai even arrange a more significant compensation.

      Data analytics is the study of dissecting crude data so as to make decisions about that data. Data analytics advances and procedures are generally utilized in business ventures to empower associations to settle on progressively Python Training in Chennai educated business choices. In the present worldwide commercial center, it isn't sufficient to assemble data and do the math; you should realize how to apply that data to genuine situations such that will affect conduct. In the program you will initially gain proficiency with the specialized skills, including R and Python dialects most usually utilized in data analytics programming and usage; Python Training in Chennai at that point center around the commonsense application, in view of genuine business issues in a scope of industry segments, for example, wellbeing, promoting and account.

      The Nodejs Projects Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training

  3. Thank for this blog are more informative step by step and useful contents. I here by attached my site would you see this blog.

    Web designing trends in 2020

    When we look into the trends, everything which is ruling today’s world was once a start up and slowly begun getting into. But Now they have literally transformed our lives on a tremendous note. To name a few, Facebook, Whats App, Twitter can be a promising proof for such a transformation and have a true impact on the digital world.

    we have offered to the advanced syllabus course web design and development for available join now

Previous Post Next Post