Interpreted language - wikipedia Interpreted language Not to be confused with Language interpretation. This article has multiple issues. Please help improve it or discuss these issues on the talk page. ( Learn how and when to remove these template messages ) This includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. Please help to improve this by introducing more precise citations. ( September 2016 ) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. ( January 2013 ) It has been suggested that this article be merged into Scripting language. ( Discuss ) Proposed since July 2017. 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. The interpreter executes the program directly, translating each statement into a sequence of one or more subroutines into another language ( often machine code ). The terms interpreted language and compiled language are not well defined because, in theory, any programming language can be either interpreted or compiled. In modern programming language implementation it is increasingly popular for a platform to provide both options. Interpreted languages can also be contrasted with machine languages. Functionally, both execution and interpretation mean the same thing -- fetching the next instruction / statement from the program and executing it. Although interpreted byte code is additionally identical to machine code in form and has an assembler representation, the term `` interpreted '' is practically reserved for `` software processed '' languages ( by virtual machine or emulator ) on top of the native ( i.e. hardware ) processor. In principle, programs in many languages may be compiled or interpreted, emulated or executed natively, so this designation is applied solely based on common implementation practice, rather than representing an essential property of a language. Many languages have been implemented using both compilers and interpreters, including BASIC, C, Lisp, Pascal, and Python. Java and C# are compiled into bytecode, the virtual - machine - friendly interpreted language. Lisp implementations can freely mix interpreted and compiled code. Contents 1 Historical background 2 Advantages 3 Disadvantages 4 List of frequently used interpreted languages 4.1 Languages usually compiled to a bytecode 5 See also 6 References Historical background In the early days of computing, language design was heavily influenced by the decision to use compiling or interpreting as a mode of execution. For example, Smalltalk ( 1980 ), which was designed to be interpreted at run - time, allows generic objects to dynamically interact with each other. Initially, interpreted languages were compiled line - by - line ; that is, each line was compiled as it was about to be executed, and if a loop or subroutine caused certain lines to be executed multiple times, they would be recompiled every time. This has become much less common. Most so - called interpreted languages use an intermediate representation, which combines compiling and interpreting. Examples include : JavaScript Python Ruby ( similarly, it uses an abstract syntax tree as intermediate representation ) Forth The intermediate representation can be compiled once and for all ( as in Java ), each time before execution ( as in Perl or Ruby ), or each time a change in the source is detected before execution ( as in Python ). Advantages Interpreting a language gives implementations some additional flexibility over compiled implementations. Features that are often easier to implement in interpreters than in compilers include : platform independence ( Java 's byte code, for example ) reflection and reflective use of the evaluator ( e.g. a first - order eval function ) dynamic typing smaller executable program size ( since implementations have flexibility to choose the instruction code ) dynamic scoping Furthermore, source code can be read and copied, giving users more freedom. Disadvantages Disadvantages of interpreted languages are : Without static type - checking, which is usually performed by a compiler, programs can be less reliable, because type checking eliminates a class of programming errors. Interpreters can be susceptible to Code injection attacks. Slower execution compared to direct native machine code execution on the host CPU. A technique used to improve performance is just - in - time compilation which converts frequently executed sequences of interpreted instruction to host machine code. JIT is most often combined with compilation to byte - code as in Java. Source code can be read and copied ( e.g. JavaScript in web pages ), or more easily reverse engineered through reflection in applications where intellectual property has a commercial advantage. In some cases, obfuscation is used as a partial defense against this. List of frequently used interpreted languages APL A vector oriented language using an unusual character set J An APL variant in which tacit definition provides some of the benefits of compiling BASIC ( although the original version, Dartmouth BASIC, was compiled, as are many modern BASICs ) thinBasic Equation manipulation and solving systems GNU Octave Interactive Data Language ( IDL ) TK Solver Mathematica MATLAB Euphoria Interpreted or compiled. Game Maker Language JavaScript Forth Lava Lisp Logo Scheme Madness Script MUMPS Perl PHP PostScript Python REXX Seed7 Smalltalk Bistro Dolphin Smalltalk F - Script Little Smalltalk Squeak VisualAge VisualWorks Spreadsheets Excel Tcl XOTcl VBScript PowerShell XMLmosaic -- an xml contained C# like programming language interpreted by a console application written in Visual Basic. NET Languages usually compiled to a bytecode Many languages are first compiled to bytecode. Ѕometimes, bytecode can also be compiled to a native binary using an AOT compiler or executed natively, by hardware processor. AppleScript Erlang ( compiled into Erlang bytecode and interpreted by the BEAM VM ) Elixir ( runs on the Erlang VM ) Java ( is compiled into Java bytecode to be interpreted by JVM ) Clojure Groovy ColdFusion Scala. NET Framework languages ( translated to bytecode, called CIL ). C++ / CLI C# Visual Basic. NET F# Lisp Lua Pike Ruby Squeak Smalltalk Visual FoxPro See also List of interpreted languages Compiled language Executable Managed code References Brown, P.J. ( 1979 ). Writing Interactive Compilers and Interpreters. John Wiley. ISBN 0 - 471 - 27609 - X. Jump up ^ `` CodePlex Archive ''. CodePlex Archive. Retrieved 7 April 2018. Retrieved from `` https://en.wikipedia.org/w/index.php?title=Interpreted_language&oldid=835734194 '' Categories : Programming language classification Hidden categories : Articles lacking in - text citations from September 2016 All articles lacking in - text citations Articles needing additional references from January 2013 All articles needing additional references Articles to be merged from July 2017 All articles to be merged Articles with multiple maintenance issues Talk Contents About Wikipedia Català Čeština Ελληνικά Español فارسی Français Galego 한국어 עברית Mirandés Polski Português Русский Српски / srpski Svenska Türkçe Українська 中文 10 more Edit links This page was last edited on 10 April 2018, at 13 : 10. Text is available under the Creative Commons Attribution - ShareAlike License ; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia ® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. About Wikipedia

Question: is python a compiled language or interpreted language
Answer: both