English
Related papers

Related papers: Python Type Hints are Turing Complete

200 papers

This paper describes a reduction from the halting problem of Turing machines to subtype checking in Java. It follows that subtype checking in Java is undecidable, which answers a question posed by Kennedy and Pierce in 2007. It also follows…

Programming Languages · Computer Science 2016-11-08 Radu Grigore

Python's dynamic typing system offers flexibility and expressiveness but can lead to type-related errors, prompting the need for automated type inference to enhance type hinting. While existing learning-based approaches show promising…

Software Engineering · Computer Science 2024-08-14 Chong Wang , Jian Zhang , Yiling Lou , Mingwei Liu , Weisong Sun , Yang Liu , Xin Peng

Gradual typing enables programmers to combine static and dynamic typing in the same language. However, ensuring a sound interaction between the static and dynamic parts can incur significant runtime cost. In this paper, we perform a…

Programming Languages · Computer Science 2019-02-22 Michael M. Vitousek , Jeremy G. Siek , Avik Chaudhuri

We prove that Cypher 25, the graph query language of Neo4j, is Turing-complete. The proof shows that a single RETURN statement using reduce(), CASE expressions, and list comprehensions can simulate any 2-counter machine (Minsky 1967). We…

Computational Complexity · Computer Science 2026-05-20 Pierre Halftermeyer

We present a type system to guarantee termination of pi-calculus processes that exploits input/output capabilities and subtyping, as originally introduced by Pierce and Sangiorgi, in order to analyse the usage of channels. We show that our…

Logic in Computer Science · Computer Science 2011-08-29 Ioana Cristescu , Daniel Hirschkoff

Automated tutoring systems offer the flexibility and scalability necessary to facilitate the provision of high quality and universally accessible programming education. In order to realise the full potential of these systems, recent work…

Human-Computer Interaction · Computer Science 2021-10-08 Jessica McBroom , Irena Koprinska , Kalina Yacef

Generative AI and large language models hold great promise in enhancing programming education by automatically generating individualized feedback for students. We investigate the role of generative AI models in providing human tutor-style…

Session types, types for structuring communication between endpoints in distributed systems, are recently being integrated into mainstream programming languages. In practice, a very important notion for dealing with such types is that of…

Programming Languages · Computer Science 2023-06-22 Mario Bravetti , Marco Carbone , Julien Lange , Nobuko Yoshida , Gianluigi Zavattaro

The Unix command \texttt{find} is among the first commands taught to beginners, yet remains indispensable for experienced engineers. In this paper, we demonstrate that \texttt{find} possesses unexpected computational power, establishing…

Data Structures and Algorithms · Computer Science 2026-02-25 Keigo Oka

With the recent advances in AI programming assistants such as GitHub Copilot, programming is not limited to classical programming languages anymore--programming tasks can also be expressed and solved by end-users in natural text. Despite…

Software Engineering · Computer Science 2024-12-18 Ruchit Rawal , Victor-Alexandru Pădurean , Sven Apel , Adish Singla , Mariya Toneva

We show that 2-tag systems efficiently simulate Turing machines. As a corollary we find that the small universal Turing machines of Rogozhin, Minsky and others simulate Turing machines in polynomial time. This is an exponential improvement…

Computational Complexity · Computer Science 2016-11-17 Damien Woods , Turlough Neary

We introduce a new type of generalized Turing machines (GTMs), which are intended as a tool for the mathematician who studies computability in Analysis. In a single tape cell a GTM can store a symbol, a real number, a continuous real…

Logic · Mathematics 2015-07-01 Nazanin Tavana , Klaus Weihrauch

Extending a given language with new dedicated features is a general and quite used approach to make the programming language more adapted to problems. Being closer to the application, this leads to less programming flaws and easier…

Logic in Computer Science · Computer Science 2010-03-26 Claude Kirchner , Pierre-Etienne Moreau , Cláudia Tavares

Python is a popular dynamic programming language, evidenced by its ranking as the second most commonly used language on GitHub. However, its dynamic type system can lead to potential type errors, leading researchers to explore automatic…

Software Engineering · Computer Science 2023-07-19 Yun Peng , Chaozheng Wang , Wenxuan Wang , Cuiyun Gao , Michael R. Lyu

This paper provides a new and more direct proof of the assertion that a Turing computable function of the natural numbers is primitive recursive if and only if the time complexity of the corresponding Turing machine is bounded by a…

Formal Languages and Automata Theory · Computer Science 2025-10-22 Daniel G. Schwartz

We consider type inference for guarded recursive data types (GRDTs) -- a recent generalization of algebraic data types. We reduce type inference for GRDTs to unification under a mixed prefix. Thus, we obtain efficient type inference.…

Programming Languages · Computer Science 2007-05-23 Peter J. Stuckey , Martin Sulzmann

The pseudoinverse of a matrix, a generalized notion of the inverse, is of fundamental importance in linear algebra and, thereby, in many different fields. Despite its proven existence, an algorithmic approach is typically necessary to…

Numerical Analysis · Mathematics 2026-01-21 Holger Boche , Adalbert Fono , Gitta Kutyniok

Python's typing system has evolved pragmatically into a powerful but theoretically fragmented system, with scattered specifications. This paper proposes a formalization to address this fragmentation. The central contribution is a formal…

Programming Languages · Computer Science 2025-09-17 Andrei Nacu , Dorel Lucanu

The Turing machine, as it was presented by Turing himself, models the calculations done by a person. This means that we can compute whatever any Turing machine can compute, and therefore we are Turing complete. The question addressed here…

Artificial Intelligence · Computer Science 2016-09-05 Ramón Casares

Java's type system mostly relies on type checking augmented with local type inference to improve programmer convenience. We study global type inference for Featherweight Generic Java (FGJ), a functional Java core language. Given generic…

Programming Languages · Computer Science 2022-05-20 Andreas Stadelmeier , Martin Plümicke , Peter Thiemann
‹ Prev 1 2 3 10 Next ›