Paul Tarau

Research Publications Software

Research Interests: Natural Language Processing, Logic Programming, Deep Learning, Type Inference and Theorem Proving, Compilers and Abstract Machines, Tree-based Arithmetic Systems,  Combinatorics of Lambda Terms

Personal Links:  My wife Brenda Luderman and our kids  Dylan Tarau and Siena Tarau .
Extended CV with full list of publications (PDF). 

Online papers: browsereferences to papers 

Academic position: Professor
Education: Ph.D. Univ. of Montreal, Canada (Computer Science), M.Sc. Univ. Laval, Canada (Computer Science), B.Sc. Univ. of Bucharest, Romania, (Mathematics)

NSF supported research projects:  Arithmetic Algorithms and Applications of Hereditarily Binary Numbers. Papers and code on these new tree-based numbering systems are here. NLP-related collaborative NSF project. Research project on a  data transformation framework that allows morphing between data types sharing the same information content. This paper describes bijections between fundamental data types. On lambda calculus and combinators in logic programming: draft paper (70p) and code here.

Research Talks, papers and slides

My Open Source Software, here is a selection of (recent) favorites:

DeepLLM: Full Automation of Goal-driven LLM Dialog Threads with And-Or Recursors and Refiner Oracles
Natlog: Lightweight Prolog-like Interpreter and nested tuple store for unification-based tuple mining in Python

iProlog: A Prolog Interpreter, in Java, derived from first principles (as described here)

Stanza Graph: Multilingual STANZA-based Summary and Keyword Extractor and Question-Answering System using Text Graphs and Neural Networks
TypesAndProofs: Theorem provers and combinatorial testers for intuitionistic propositional logic and type inhabitation problems in Prolog

DeepRank: Python and Prolog-based summary, keyphrase and relation extractor from text documents using dependency graphs.
PythonProvers: Theorem provers and combinatorial testers for intuitionistic propositional logic and type inhabitation problems in Python
Styla: a Prolog interpreter in Scala, also here,
Jinni Prolog: a Java-based compiler and runtime system,
BinProlog:  a C-based compiler and runtime system,
Arithmetic operations with tree-based natural and rational numbers in Scala,
Bijective Goedel Numberings in Scala,
Kernel Prolog: a Prolog interpreter in Java.
Logic Transformers: ransformers from Horn Clause Programs to Code Running on Lightweight Python, Swift, Julia and C-based Virtual Machines

Contact Information
E-mailmyfirstname.mylastname@unt.edu  WWW : https://ptarau.github.io
Address: Department of Computer Science and Engineering, University of North Texas, 1155 Union Circle #311366 Denton, Texas 76203-5017, USA
Phone :  +1-940-565-2806, +1-940-565-2767

Program committees: FLOPS 2024, ICLP 2023, PADL 2023, ICLP 2022, PADL 2022, PPDP 2021, ICLP 2021, ICLP 2020, PADL 2019, ICLP 2018 (program chair), ICLP 2017, PADL 2018, PADL 2017, PADL 2016, LATA 15, ICLP 2014,TextGraphs 13, LOPSTR 13, ACM SAC 13, CICLOPS 12, GPCE 12 , TextGraphs-7 FLOPS 2012, ACM SAC 12PPDP 11, DSL 11, CICLOPS 11, ACM SAC 09, CICLOPS 08, ICLP 07, ACM SAC 06,  ICLP 04, PADL 04,  INAP 04, SONA 04, PADL 03, PADL 02, CICLOPS2002, PPDP 2000, CL2000,JFPLC 2000, ESAW 2000,MAS 99, COCL 99,IDL 99,DIPLCLP 99,WETICE 98, JICSLP 98,JFPLC 98,COCL 98, ILPS 97, JICSLP 96, JFPL 96, ICLP 95, LOPSTR 95

Workshops organized: 
CICLOPS 2009 at ICLP 09, IDL 99 at PLI 99, DIPLCL 99 ICLP 99
ICLP 97: 2nd International Workshop on Logic Programming Tools for Internet Applications JICSLP 96:
ILPS 94: Implementation of Logic Programming Languages
ICLP 93: Blackboard Based Logic Programming

Courses taught at UNT:

CSCE 5210 Fundamentals of Artificial Intelligence
CSCE 3110 Data Structures and Algorithms
CSCE 4430 Programming Languages
CSCE 5430 Software Engineering
CSCE 5400 Automata Theory

CSCE 3030 Parallel Programming
CSCE 5160 Parallel Processing and Algorithms CSCE 5450
Programming Languages
CSCE 5290/4930 Natural Language Processing
CSCE 5150-2 Analysis of Algorithms
CSCE 6933 Logic and Knowledge Processing in Computer Science
CSCE 2100 Foundations of Computing
CSCE 5450
Programming Languages
CSCE 4010-002 Social Issues in Computing.
CSCE 3220 Human Computer Interfaces

CSCE 3210 Symbolic Processing
Advanced Object Oriented and Functional Programming in Scala
CSCE 5430 Topics in Software Engineering
CSCE 5420: Software Development
CSCE 6933 Topics in Computational Mathematics
CSCE 5170: Graph Theory
CSCE 3600: Principles of System Programming CSCE
CSCE 5210: Artificial Intelligence
CSCI 4410:  Introduction to Artificial Intelligence
CSCI 3400: - Data Structures
CSCI 6330: Advanced Topics in Software Agents
CSCI 5540: - Operating Systems
CSCI 4250 Survey of Computer Languages
CSCI 6330  Advanced Internet Programming

Policy on directed studies, projects and reference letters
: I will consider requests for directed studies and projects only for students working with me on a PhD or MSc thesis. Otherwise, I believe that regular classes, involving team work and presentations are likely to provide a more complete learning experience. Requests to work as a TA should be addressed directly to the department. Reference letters from me are not needed as the priority list is built independently by the department. I will provide reference letters for job or grant applications to students with which I worked directly as member of their thesis committees.