Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
124 tokens/sec
GPT-4o
8 tokens/sec
Gemini 2.5 Pro Pro
47 tokens/sec
o3 Pro
5 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

The Emergence of Large Language Models in Static Analysis: A First Look through Micro-Benchmarks (2402.17679v1)

Published 27 Feb 2024 in cs.SE

Abstract: The application of LLMs in software engineering, particularly in static analysis tasks, represents a paradigm shift in the field. In this paper, we investigate the role that current LLMs can play in improving callgraph analysis and type inference for Python programs. Using the PyCG, HeaderGen, and TypeEvalPy micro-benchmarks, we evaluate 26 LLMs, including OpenAI's GPT series and open-source models such as LLaMA. Our study reveals that LLMs show promising results in type inference, demonstrating higher accuracy than traditional methods, yet they exhibit limitations in callgraph analysis. This contrast emphasizes the need for specialized fine-tuning of LLMs to better suit specific static analysis tasks. Our findings provide a foundation for further research towards integrating LLMs for static analysis tasks.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (23)
  1. [n. d.]. Hugging Face – The AI Community Building the Future. https://huggingface.co/.
  2. [n. d.]. Langchain-Ai/Langchain: Building Applications with LLMs through Composability. https://github.com/langchain-ai/langchain.
  3. [n. d.]. Ollama. https://ollama.ai.
  4. Typilus: Neural Type Hints (PLDI 2020). Association for Computing Machinery, New York, NY, USA, 91–105. https://doi.org/10.1145/3385412.3385997
  5. Unleashing the Potential of Prompt Engineering in Large Language Models: A Comprehensive Review. arXiv:2310.14735 [cs]
  6. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805 [cs]
  7. Large Language Models for Software Engineering: Survey and Open Problems. https://arxiv.org/abs/2310.03533v4.
  8. Large Language Models for Software Engineering: A Systematic Literature Review. https://doi.org/10.48550/arXiv.2308.10620 arXiv:2308.10620 [cs]
  9. Assisting Static Analysis with Large Language Models: A ChatGPT Experiment. In Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (¡conf-loc¿, ¡city¿San Francisco¡/city¿, ¡state¿CA¡/state¿, ¡country¿USA¡/country¿, ¡/conf-loc¿) (ESEC/FSE 2023). Association for Computing Machinery, New York, NY, USA, 2107–2111. https://doi.org/10.1145/3611643.3613078
  10. The Hitchhiker’s Guide to Program Analysis: A Journey with Large Language Models. https://doi.org/10.48550/arXiv.2308.00245 arXiv:2308.00245 [cs]
  11. The Scope of ChatGPT in Software Engineering: A Thorough Investigation.
  12. Type4Py: Practical Deep Similarity Learning-Based Type Inference for Python. In Proceedings of the 44th International Conference on Software Engineering (ICSE ’22). Association for Computing Machinery, New York, NY, USA, 2241–2252. https://doi.org/10.1145/3510003.3510124
  13. Static Inference Meets Deep Learning: A Hybrid Type Inference Approach for Python. In Proceedings of the 44th International Conference on Software Engineering (ICSE ’22). Association for Computing Machinery, New York, NY, USA, 2019–2030. https://doi.org/10.1145/3510003.3510038
  14. Language Models Are Unsupervised Multitask Learners. ([n. d.]).
  15. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. https://doi.org/10.48550/arXiv.1910.10683 arXiv:1910.10683 [cs, stat]
  16. PyCG: Practical Call Graph Generation in Python. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE). 1646–1657. https://doi.org/10.1109/ICSE43902.2021.00146
  17. Learning Type Inference for Enhanced Dataflow Analysis. arXiv:2310.00673 [cs.LG]
  18. Automatic Code Summarization via ChatGPT: How Far Are We? arXiv:2305.12865 [cs.SE]
  19. TypeEvalPy: A Micro-benchmarking Framework for Python Type Inference Tools. https://doi.org/10.48550/arXiv.2312.16882 arXiv:2312.16882 [cs]
  20. Enhancing Comprehension and Navigation in Jupyter Notebooks with Static Analysis. In 2023 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE Computer Society, 391–401. https://doi.org/10.1109/SANER56733.2023.00044
  21. A Survey on Large Language Models for Software Engineering. https://doi.org/10.48550/arXiv.2312.15223 arXiv:2312.15223 [cs]
  22. Towards an Understanding of Large Language Models in Software Engineering Tasks. https://doi.org/10.48550/arXiv.2308.11396 arXiv:2308.11396 [cs]
  23. A Survey on Model Compression for Large Language Models. https://doi.org/10.48550/arXiv.2308.07633 arXiv:2308.07633 [cs]
Citations (5)

Summary

We haven't generated a summary for this paper yet.

X Twitter Logo Streamline Icon: https://streamlinehq.com