python is an interpreted programming language that has been widely used in many fields. The successful execution of a python program depends on both the correctness of python program and the correctness of python inte...
详细信息
python is an interpreted programming language that has been widely used in many fields. The successful execution of a python program depends on both the correctness of python program and the correctness of python interpreter. As an infrastructure software, there are many bugs in the python interpreter. Exploring the bugs in python interpreters can help developers and maintainers of python interpreters detect and fix bugs and help users of python avoid risks. In this article, we conduct an empirical study on the bugs in two mainstream python interpreters: Cpython and PyPy. By analyzing 25 958 fixed bugs, 18 824 revisions, 2 116 test cases, and root causes of randomly sampled 510 bugs, we have summarized the following findings.
python has been widely used to develop large-scale software systems such as distributed systems, cloud computing, artificial intelligence, and Web platforms due to its flexibility and versatility. As a kind of complex...
详细信息
python has been widely used to develop large-scale software systems such as distributed systems, cloud computing, artificial intelligence, and Web platforms due to its flexibility and versatility. As a kind of complex software, python interpreter could also suffer from software bugs and thus fundamentally threaten the quality of all python program applications. Since the first release of python, more than 30,000 bugs have been discovered. While modern interpreters often consist of many modules, built-in libraries, extensions, etc, they could reach millions of code lines. The large size and high complexity of interpreters bring substantial challenges to their quality assurance. To characterize the interpreter bugs and provide empirical supports, this paper conducts a large-scale empirical study on the two most popular python interpreters - Cpython and PyPy. We have comprehensively investigated the maintenance log information and collected 30,069 fixed bugs and 20,334 confirmed revisions. We further manually characterized and taxonomized 1200 bugs to investigate their representative symptoms and root causes deeply. Finally, we identified nine findings by comprehensively investigating bug locations, symptoms, root causes, and bug revealing & fixing time. The key findings include (for both interpreters): (1) the Library, object model, and interpreter back-end are the most buggy components;(2) unexpected behavior, crash, and performance are the most common symptoms;(3) incorrect algorithm logic, configuration, and internal call are the most common general root causes;incorrect object design is the most common python-specific root cause;(4) some test-program triggering bugs are tiny (less than ten lines), and most bug fixes only involve slight modifications. Depending on these findings, we discuss the lessons learned and practical implications that can support the research on interpreters' testing, debugging, and improvements.
The DIgSILENT Power Factory is an engineering tool for the analysis of distribution, transmission, and industrial electrical power systems. "DIgSILENT" is an acronym for "Digital SImuLation of Electrica...
详细信息
ISBN:
(纸本)9789811502149;9789811502132
The DIgSILENT Power Factory is an engineering tool for the analysis of distribution, transmission, and industrial electrical power systems. "DIgSILENT" is an acronym for "Digital SImuLation of Electrical NeTworks". This software is an advanced integrated and interactive package dedicated to electrical power system and control analysis so as to achieve planning and operational optimization objectives. The package can be interfaced with programming languages and software for performing tasks for better utility. python is a high-level programming language with legible syntax and comes with open-source license. This paper brings the methodology for interfacing of python with DIgSILENT Power Factory for automation of tasks. The paper provides various code snippets for interfacing python with software package and task automation.
Technology trends prompting architects to consider greater heterogeneity and hardware specialization have exposed an increasing need for vertically integrated research methodologies that can effectively assess perform...
详细信息
ISBN:
(纸本)9781479969982
Technology trends prompting architects to consider greater heterogeneity and hardware specialization have exposed an increasing need for vertically integrated research methodologies that can effectively assess performance, area, and energy metrics of future architectures. However, constructing such a methodology with existing tools is a significant challenge due to the unique languages, design patterns, and tools used in functional-level (FL), cycle-level (CL), and register-transfer-level (RTL) modeling. We introduce a new framework called PyMTL that aims to close this computer architecture research methodology gap by providing a unified design environment for FL, CL, and RTL modeling. PyMTL leverages the python programming language to create a highly productive domain-specific embedded language for concurrent-structural modeling and hardware design. While the use of python as a modeling and framework implementation language provides considerable benefits in terms of productivity, it comes at the cost of significantly longer simulation times. We address this performance-productivity gap with a hybrid JIT compilation and JIT specialization approach. We introduce SimJIT, a custom JIT specialization engine that automatically generates optimized C++ for CL and RTL models. To reduce the performance impact of the remaining unspecialized code, we combine SimJIT with an off-the-shelf python interpreter with a meta-tracing JIT compiler (PyPy). SimJIT+PyPy provides speedups of up to 72x for CL models and 200x for RTL models, bringing us within 4-6x of optimized C++ code while providing significant benefits in terms of productivity and usability.
python is a common used programming language in many environments, such as datacenter software, embedded programming or regular desktop computers, due to its dynamic and interpreted nature. Furthermore it is easy to w...
详细信息
ISBN:
(数字)9783319472386
ISBN:
(纸本)9783319472386;9783319472379
python is a common used programming language in many environments, such as datacenter software, embedded programming or regular desktop computers, due to its dynamic and interpreted nature. Furthermore it is easy to write applications and test them because no recompilation is needed. At the heart of everything lies the python interpreter which is responsible with converting input scripts into an platform-independent representation, called bytecode, and then executing them in a contained environment. In this paper an in depth security analysis of the Cpython interpreter is made. Also, a proof of concept general attack targeting the bytecode generation engine is presented and detailed. To emphasize the importance of the findings it also takes into consideration a study case on the OpenStack framework, that is widely used today in various Cloud deployments and as a software basis for many datacenters. It is chosen because it is implemented entirely in python, rather easy to understand its internals and how to deploy it in real environments. The point made is that using our technique, or something similar, a malicious user can affect the good function of the framework, which translates into possible access gain over all the users data and applications that are stored in a Cloud environment.
暂无评论