8 research outputs found

    Self-regulating finite automata

    Get PDF
    This paper introduces and discusses self-regulating finite automata. In essence, these automata regulate the use of their rules by a sequence of rules applied during previous moves. A special attention is paid to turns defined as moves during which a self-regulating finite automaton starts a new self-regulating sequence of moves. Based on the number of turns, the present paper establishes two infinite hierarchies of language families resulting from two variants of these automata. In addition, it demonstrates that these hierarchies coincide with the hierarchies resulting from parallel right linear grammars and right linear simple matrix grammars, so the self-regulating finite automata can be viewed as the automaton counterparts to these grammars. Finally, this paper compares both infinite hierarchies. In addition, as an open problem area, it suggests the discussion of self-regulating pushdown automata and points out that they give rise to no infinite hierarchy analogical to the achieved hierarchies resulting from the self-regulating finite automata

    Formal Language Recognition with the Java Type Checker

    Get PDF
    This paper is a theoretical study of a practical problem: the automatic generation of Java Fluent APIs from their specification. We explain why the problem\u27s core lies with the expressive power of Java generics. Our main result is that automatic generation is possible whenever the specification is an instance of the set of deterministic context-free languages, a set which contains most "practical" languages. Other contributions include a collection of techniques and idioms of the limited meta-programming possible with Java generics, and an empirical measurement demonstrating that the runtime of the "javac" compiler of Java may be exponential in the program\u27s length, even for programs composed of a handful of lines and which do not rely on overly complex use of generics

    Java Generics are Turing Complete

    Get PDF
    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 that Java's type checker can recognize any recursive language, which improves a result of Gill and Levy from 2016. The latter point is illustrated by a parser generator for fluent interfaces

    Fling - A Fluent API Generator

    Get PDF
    We present the first general and practical solution of the fluent API problem - an algorithm, that given a deterministic language (equivalently, LR(k), k >= 0 language) encodes it in an unbounded parametric polymorphism type system employing only a polynomial number of types. The theoretical result is accompanied by an actual tool Fling - a fluent API compiler-compiler in the venue of YACC, tailored for embedding DSLs in Java

    The tree equivalence of linear recursion schemes

    Get PDF
    In the paper, a complete system of transformation rules preserving the tree equivalence and a polynomial-time algorithm deciding the tree equivalence of linear polyadic recursion schemes are proposed. The algorithm is formulated as a sequential transformation process which brings together the schemes in question. In the last step, the tree equivalence problem for the given schemes is reduced to a global flow analysis problem which is solved by an efficient marking algorithm

    Regulated Formal Models and Their Reduction

    Get PDF
    Department of Theoretical Computer Science and Mathematical LogicKatedra teoretické informatiky a matematické logikyFaculty of Mathematics and PhysicsMatematicko-fyzikální fakult

    Acta Cybernetica : Volume 18. Number 1.

    Get PDF

    Acta Cybernetica : Volume 19. Number 2.

    Get PDF
    corecore