SlideShare uma empresa Scribd logo
1 de 52
PyPy Compiling Dynamic Language Implementations
The Python Situation
The Python Situation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What PyPy is ,[object Object],[object Object]
What PyPy is ,[object Object]
What PyPy is ,[object Object],[object Object],$> python py.py
What PyPy is ,[object Object],[object Object],[object Object],$> python py.py
What PyPy is ,[object Object],[object Object],[object Object],[object Object],$> python py.py
What PyPy is ,[object Object],$> python py.py $> ./pypy-c  $> ./pypy-jvm $> ./pypy-cli
some PyPy facts ,[object Object],[object Object],[object Object],[object Object],[object Object]
PyPy Components ,[object Object],[object Object],[object Object],[object Object]
PyPy components Architektur
PyPy components RPython ,[object Object]
PyPy components RPython ,[object Object],[object Object]
PyPy components RPython ,[object Object],[object Object],[object Object]
PyPy components RPython ,[object Object],[object Object],[object Object],[object Object]
PyPy components RPython ,[object Object],[object Object],[object Object],[object Object],[object Object]
PyPy components RPython ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PyPy components RPython ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PyPy components Interpreter
PyPy components Interpreter ,[object Object]
PyPy components Interpreter ,[object Object],[object Object],[object Object]
PyPy components Interpreter ,[object Object],[object Object],[object Object],[object Object]
PyPy components Interpreter ,[object Object],[object Object],[object Object],[object Object],[object Object]
Python Interpreter
PyPy components Translation Framework
PyPy components Translation Framework
PyPy components Translation Framework
PyPy components Translation Framework
 
PyPy > CPython ,[object Object],[object Object],[object Object],[object Object]
PyPy > CPython High Level Language Implementation ,[object Object]
PyPy > CPython High Level Language Implementation ,[object Object],[object Object]
PyPy > CPython High Level Language Implementation ,[object Object],[object Object],[object Object]
PyPy > CPython High Level Language Implementation ,[object Object],[object Object],[object Object],[object Object]
PyPy > CPython High Level Language Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object]
PyPy > CPython High Level Language Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PyPy > CPython JIT Generation ,[object Object]
PyPy > CPython JIT Generation ,[object Object],[object Object]
PyPy > CPython JIT Generation ,[object Object],[object Object],[object Object]
PyPy > CPython JIT Generation
PyPy > CPython Object Spaces ,[object Object],[object Object],[object Object],[object Object],[object Object]
Thunk Object Space ,[object Object],[object Object],[object Object],[object Object]
Thunk Object Space ,[object Object],[object Object],[object Object],[object Object],[object Object]
Thunk Object Space ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],>>>> a = "hello" >>>> b = "world" >>>> a + b 'helloworld' >>>> become(a,b) >>>> a + b 'worldworld'
Taint Object Space ,[object Object],[object Object]
Taint Object Space ,[object Object],[object Object],[object Object],[object Object]
Taint Object Space ,[object Object],[object Object],[object Object],[object Object],[object Object],>>>> password = &quot;secret&quot; >>>> password 'secret' >>>> password = taint(&quot;secret&quot;) >>>> password Traceback (application-level):    File &quot;<inline>&quot;, line 1 in <interactive>      password TaintError
PyPy > CPython Stackless ,[object Object],[object Object],[object Object]
PyPy > CPython Stackless ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PyPy > CPython Stackless ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Demo Lazy functions and objects Tainted objects Translator Shell

Mais conteúdo relacionado

Mais procurados

Os Worthington
Os WorthingtonOs Worthington
Os Worthington
oscon2007
 
How to integrate python into a scala stack
How to integrate python into a scala stackHow to integrate python into a scala stack
How to integrate python into a scala stack
Fliptop
 

Mais procurados (20)

Os Worthington
Os WorthingtonOs Worthington
Os Worthington
 
Eclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesEclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimes
 
Jit builder status and directions 2018 03-28
Jit builder status and directions 2018 03-28Jit builder status and directions 2018 03-28
Jit builder status and directions 2018 03-28
 
How to integrate python into a scala stack
How to integrate python into a scala stackHow to integrate python into a scala stack
How to integrate python into a scala stack
 
Porting To Symbian
Porting To SymbianPorting To Symbian
Porting To Symbian
 
Automating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffsAutomating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffs
 
Mixing Python and Java
Mixing Python and JavaMixing Python and Java
Mixing Python and Java
 
Oh the compilers you'll build
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll build
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Python overview
Python overviewPython overview
Python overview
 
Python Flavors
Python FlavorsPython Flavors
Python Flavors
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
Jython: Integrating Python and Java
Jython: Integrating Python and JavaJython: Integrating Python and Java
Jython: Integrating Python and Java
 
Groovy
GroovyGroovy
Groovy
 
A Better Python for the JVM
A Better Python for the JVMA Better Python for the JVM
A Better Python for the JVM
 
Raspberry using Python Session 3
Raspberry using Python Session 3Raspberry using Python Session 3
Raspberry using Python Session 3
 
Ruby formatters
Ruby formattersRuby formatters
Ruby formatters
 
IL2CPP: Debugging and Profiling
IL2CPP: Debugging and ProfilingIL2CPP: Debugging and Profiling
IL2CPP: Debugging and Profiling
 
Community Tech Days C# 4.0
Community Tech Days C# 4.0Community Tech Days C# 4.0
Community Tech Days C# 4.0
 
Why Python?
Why Python?Why Python?
Why Python?
 

Destaque

Destaque (10)

Jailbreaking iOS
Jailbreaking iOSJailbreaking iOS
Jailbreaking iOS
 
PyPy - is it ready for production
PyPy - is it ready for productionPyPy - is it ready for production
PyPy - is it ready for production
 
iOS
iOSiOS
iOS
 
Jail breaking
Jail breakingJail breaking
Jail breaking
 
Haptic Technology #Manoj_Rockstar
Haptic Technology #Manoj_RockstarHaptic Technology #Manoj_Rockstar
Haptic Technology #Manoj_Rockstar
 
PyPy: Dynamic Language Compilation Framework
PyPy: Dynamic Language Compilation FrameworkPyPy: Dynamic Language Compilation Framework
PyPy: Dynamic Language Compilation Framework
 
Data mining fp growth
Data mining fp growthData mining fp growth
Data mining fp growth
 
Haptic Technology
Haptic TechnologyHaptic Technology
Haptic Technology
 
Haptic Technology
Haptic Technology Haptic Technology
Haptic Technology
 
Haptic technology
Haptic technologyHaptic technology
Haptic technology
 

Semelhante a a quick Introduction to PyPy

Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Yusuke Izawa
 
Python分享
Python分享Python分享
Python分享
fangdeng
 
Python Programming-1.pptx of python by computer
Python Programming-1.pptx of python by computerPython Programming-1.pptx of python by computer
Python Programming-1.pptx of python by computer
sharanyarashmir5
 

Semelhante a a quick Introduction to PyPy (20)

Pyhton-1a-Basics.pdf
Pyhton-1a-Basics.pdfPyhton-1a-Basics.pdf
Pyhton-1a-Basics.pdf
 
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
 
Easy contributable internationalization process with Sphinx @ pyconmy2015
Easy contributable internationalization process with Sphinx @ pyconmy2015Easy contributable internationalization process with Sphinx @ pyconmy2015
Easy contributable internationalization process with Sphinx @ pyconmy2015
 
Py4 inf 01-intro
Py4 inf 01-introPy4 inf 01-intro
Py4 inf 01-intro
 
Python in a real life
Python in a real lifePython in a real life
Python in a real life
 
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One Engine
 
Python tools for testing web services over HTTP
Python tools for testing web services over HTTPPython tools for testing web services over HTTP
Python tools for testing web services over HTTP
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
Startup Camp - Git, Python, Django session
Startup Camp - Git, Python, Django sessionStartup Camp - Git, Python, Django session
Startup Camp - Git, Python, Django session
 
Business logic with PostgreSQL and Python
Business logic with PostgreSQL and PythonBusiness logic with PostgreSQL and Python
Business logic with PostgreSQL and Python
 
Python分享
Python分享Python分享
Python分享
 
Easy contributable internationalization process with Sphinx @ pyconsg2015
Easy contributable internationalization process with Sphinx @ pyconsg2015Easy contributable internationalization process with Sphinx @ pyconsg2015
Easy contributable internationalization process with Sphinx @ pyconsg2015
 
Introduction To Python
Introduction To PythonIntroduction To Python
Introduction To Python
 
Pipfile, pipenv, pip… what?!
Pipfile, pipenv, pip… what?!Pipfile, pipenv, pip… what?!
Pipfile, pipenv, pip… what?!
 
Python Presentation
Python PresentationPython Presentation
Python Presentation
 
Writing Fast Code (JP) - PyCon JP 2015
Writing Fast Code (JP) - PyCon JP 2015Writing Fast Code (JP) - PyCon JP 2015
Writing Fast Code (JP) - PyCon JP 2015
 
Massively Parallel Processing with Procedural Python by Ronert Obst PyData Be...
Massively Parallel Processing with Procedural Python by Ronert Obst PyData Be...Massively Parallel Processing with Procedural Python by Ronert Obst PyData Be...
Massively Parallel Processing with Procedural Python by Ronert Obst PyData Be...
 
Python Programming-1.pptx of python by computer
Python Programming-1.pptx of python by computerPython Programming-1.pptx of python by computer
Python Programming-1.pptx of python by computer
 
First python project
First python projectFirst python project
First python project
 
Python Dependency Management - PyconDE 2018
Python Dependency Management - PyconDE 2018Python Dependency Management - PyconDE 2018
Python Dependency Management - PyconDE 2018
 

Mais de Kai Aras (7)

from Realtime Operating systems to unlocking iPhones in less than 30 slides
from Realtime Operating systems to unlocking iPhones in less than 30 slidesfrom Realtime Operating systems to unlocking iPhones in less than 30 slides
from Realtime Operating systems to unlocking iPhones in less than 30 slides
 
Design patterns - Singleton&Command
Design patterns - Singleton&CommandDesign patterns - Singleton&Command
Design patterns - Singleton&Command
 
OpenAmi - a short Introduction
OpenAmi - a short IntroductionOpenAmi - a short Introduction
OpenAmi - a short Introduction
 
Projektdokumentation Kai Aras Ss08
Projektdokumentation Kai Aras Ss08Projektdokumentation Kai Aras Ss08
Projektdokumentation Kai Aras Ss08
 
Sounddesign - Pi - Kai Aras - WS08/09
Sounddesign - Pi - Kai Aras - WS08/09Sounddesign - Pi - Kai Aras - WS08/09
Sounddesign - Pi - Kai Aras - WS08/09
 
Algorythm
AlgorythmAlgorythm
Algorythm
 
Virtual Reality - Tracking Applications
Virtual Reality - Tracking ApplicationsVirtual Reality - Tracking Applications
Virtual Reality - Tracking Applications
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

a quick Introduction to PyPy