參考文獻 |
[1] C. R. Harris, K. J. Millman, S. J. van der Walt, et al., “Array programming with NumPy,” Nature, vol. 585, no. 7825, pp. 357–362, Sep. 2020. doi: 10.1038/s41586-020-2649-2. [Online]. Available: https://doi.org/10.1038/s41586-020-2649-2.
[2] M. Abadi, A. Agarwal, P. Barham, et al., “Tensorflow: Large-scale machine learning on heterogeneous distributed systems,” arXiv preprint arXiv:1603.04467, 2016.
[3] A. Paszke, S. Gross, F. Massa, et al., “Pytorch: An imperative style, high-performance deep learning library,” Advances in neural information processing systems, vol. 32,
2019.
[4] J. Bergstra, F. Bastien, O. Breuleux, et al., “Theano: Deep learning on gpus with python,” in NIPS 2011, BigLearning Workshop, Granada, Spain, Citeseer, vol. 3,
2011, pp. 1–48.
[5] Y. Jia, E. Shelhamer, J. Donahue, et al., “Caffe: Convolutional architecture for fast feature embedding,” in Proceedings of the 22nd ACM international conference on
Multimedia, 2014, pp. 675–678.
[6] T. Chen, “Typesafe abstractions for tensor operations (short paper),” in Proceedings of the 8th ACM SIGPLAN International Symposium on Scala, 2017, pp. 45–50.
[7] E. Meijer and P. Drayton, “Static typing where possible, dynamic typing when needed: The end of the cold war between programming languages,” Citeseer, 2004.
[8] L. Tratt and R. Wuyts, “Guest editors’ introduction: Dynamically typed languages,” IEEE software, vol. 24, no. 5, pp. 28–30, 2007.
[9] F. Ortin, J. B. G. Perez-Schofield, and J. M. Redondo, “Towards a static type checker for python,” in European Conference on Object-Oriented Programming (ECOOP), Scripts to Programs Workshop, STOP, vol. 15, 2015, pp. 1–2.
[10] J. Siek and W. Taha, “Gradual typing for objects,” in European Conference on Object-Oriented Programming, Springer, 2007, pp. 2–27.
[11] G. Bierman, M. Abadi, and M. Torgersen, “Understanding typescript,” in European Conference on Object-Oriented Programming, Springer, 2014, pp. 257–281.
[12] M. Kazerounian, N. Vazou, A. Bourgerie, J. S. Foster, and E. Torlak, “Refinement types for ruby,” in International Conference on Verification, Model Checking, and Abstract Interpretation, Springer, 2018, pp. 269–290.
[13] Mypy. [Online]. Available: https://mypy.readthedocs.io/en/stable/ (visited on 05/03/2022).
[14] Cpython-grammer. [Online]. Available: https://github.com/python/cpython/ blob/3.9/Grammar/python.gram/ (visited on 07/03/2022).
[15] P. Cousot and N. Halbwachs, “Automatic discovery of linear restraints among variables of a program,” in Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, 1978, pp. 84–96.
[16] P. Cousot, “Types as abstract interpretations,” in Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, 1997,pp. 316–331.
[17] Numpy. [Online]. Available: https://numpy.org/ (visited on 05/11/2022).
[18] E. A. Cruz Camacho, “Static analysis of python programs using abstract interpretation: An application to tensor shape analysis,” Ingenierı́a de Sistemas, 2019.
[19] Pep-484. [Online]. Available:
https://peps.python.org/pep-0484/ (visited on 05/03/2022).
[20] A. Fromherz, A. Ouadjaout, and A. Miné, “Static value analysis of python programs by abstract interpretation,” in NASA Formal Methods Symposium, Springer, 2018,pp. 185–202.
[21] Y. Zhuang and M.-Y. Lu, “Enabling type checking on columns in data frame libraries by abstract interpretation,” IEEE Access, vol. 10, pp. 14 418–14 428, 2022.
[22] J. Mitlöhner, S. Neumaier, J. Umbrich, and A. Polleres, “Characteristics of open data csv files,” in 2016 2nd International Conference on Open and Big Data (OBD),IEEE, 2016, pp. 72–79.
[23] 蔡欣倢and 莊永裕, “基於抽象語法樹剖析與網路爬蟲的字串參數錯誤偵測靜態分析檢查器,” The 17th Taiwan Conference on Software Engineering (第17 屆台灣軟體工程研討會, TCSE 2021), Jul. 2021.
[24] T. pandas development team, Pandas-dev/pandas: Pandas, version latest, Feb.2022. doi: 10.5281/zenodo.6408044. [Online]. Available: https://doi.org/10.5281/zenodo.6408044.
[25] W. McKinney, “Data Structures for Statistical Computing in Python,” in Proceedings of the 9th Python in Science Conference, S. van der Walt and J. Millman, Eds.,2010, pp. 56–61. doi: 10.25080/Majora-92bf1922-00a.
[26] H. Gulabovska and Z. Porkoláb, “Survey on static analysis tools of python programs.,” in SQAMIA, 2019.
[27] Pep-8. [Online]. Available: https://peps.python.org/pep- 0008/ (visited on 06/28/2022).
[28] Bandit. [Online]. Available: https : / / github . com / PyCQA / bandit (visited on 06/28/2022).
[29] Black. [Online]. Available: https://github.com/psf/black (visited on 06/28/2022).
[30] Pylint. [Online]. Available: https://pylint.pycqa.org/en/latest/ (visited on 05/15/2022).
[31] Pyflakes. [Online]. Available: https : / / launchpad . net / pyflakes (visited on 06/28/2022).
[32] Y. Zhang, Y. Chen, S.-C. Cheung, Y. Xiong, and L. Zhang, “An empirical study on tensorflow program bugs,” in Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, 2018, pp. 129–140.
[33] J. Dolby, A. Shinnar, A. Allain, and J. Reinen, “Ariadne: Analysis for machine learning programs,” in Proceedings of the 2Nd ACM SIGPLAN International Workshop
on Machine Learning and Programming Languages, 2018, pp. 1–10.
[34] M. Sridharan, S. Chandra, J. Dolby, S. J. Fink, and E. Yahav, “Alias analysis for object-oriented programs,” in Aliasing in Object-Oriented Programming. Types, Analysis and Verification, Springer, 2013, pp. 196–232.
[35] S. Lagouvardos, J. Dolby, N. Grech, A. Antoniadis, and Y. Smaragdakis, “Static analysis of shape in tensorflow programs,” in 34th European Conference on Object-Oriented Programming (ECOOP 2020), Schloss Dagstuhl-Leibniz-Zentrum für Informatik,2020.
[36] M. Bravenboer and Y. Smaragdakis, “Strictly declarative specification of sophisticated points-to analyses,” in Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, 2009, pp. 243–262.
[37] H. Jordan, B. Scholz, and P. Subotić, “Soufflé: On synthesis of program analyzers,”in International Conference on Computer Aided Verification, Springer, 2016,pp. 422–430.
[38] S. Verma and Z. Su, “Shapeflow: Dynamic shape interpreter for tensorflow,” arXivpreprint arXiv:2011.13452, 2020.
[39] D. Wu, B. Shen, Y. Chen, H. Jiang, and L. Qiao,“Tensfa: Detecting and repairing tensor shape faults in deep learning systems,” in 2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE), IEEE, 2021, pp. 11–21.
[40] P. Cousot and R. Cousot, “Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints,” in Proceedings
of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages,1977, pp. 238–252.
[41] Valgrind. [Online]. Available: https://valgrind.org/ (visited on 06/23/2022).
[42] N. Nethercote and J. Seward, “Valgrind: A framework for heavyweight dynamic binary instrumentation,” ACM Sigplan notices, vol. 42, no. 6, pp. 89–100, 2007.
[43] N. Nethercote and J. Fitzhardinge, “Bounds-checking entire programs without recompiling,” SPACE, 2004.
[44] R. Hastings and B. Joyce, “Purify: A tool for detecting memory leaks and access errors in c and c++ programs,” in Proceedings of the Winter 1992 USENIX Conference,
pp. 125–138.
[45] J. Santino, “Enforcing correct array indexes with a type system,” in Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software
Engineering, 2016, pp. 1142–1144.
[46] M. Kellogg, V. Dort, S. Millstein, and M. D. Ernst, “Lightweight verification of array indexing,” in Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, 2018, pp. 3–14.
[47] M. M. Papi, M. Ali, T. L. Correa Jr, J. H. Perkins, and M. D. Ernst, “Practical pluggable types for java,” in Proceedings of the 2008 international symposium on Software testing and analysis, 2008, pp. 201–212.
[48] Tensorflow-haskell-deptyped. [Online]. Available: https : / / github . com / helq /tensorflow-haskell-deptyped (visited on 06/28/2022). |