Anthony J. Dos Reis
Associate Professor of Computer Science
Department of Computer Science
State University of New York at New Paltz
1 Hawk Drive
New Paltz, NY 12561
Office: Science Building 245
Phone: (845)257-3529
Fax:
(845)257-3990
Email:
dosreist@newpaltz.edu
Education:
- Bachelors in electrical engineering from Cornell University,
Ithaca, NY
- Masters in electrical engineering from Cornell University,
Ithaca, NY
- Masters in computer science from the State University of New
York at Albany, Albany, NY
- Ph.D. in computer science from Rensselaer Polytechnic
Institute, Troy, NY
Industry Experience:
- Worked at IBM as a systems programmer. Worked on
IBM operating systems, compilers, and mainframe hardware.
Specialties:
- Programming Languages
- Computer Architecture
- Compiler Design and Implementation
- Formal Languages
Textbooks:
C and C++ Under the Hood Second Edition, 2021
- Study of C and C++ at the assembly language level.
- Covers machine language, assembly language, interpreters,
compilers, C, C++, microprogramming, and computer architecture.
- Accompanied by an easy-to-install (simply unzip the zip file), easy-to-use assembler, linker, debugger, and interpreter that runs on Windows, Mac OS X, Linux, and Raspbian.
RISC-V Assembly Language, 2019
- Emphasizes system concepts.
- Accompanied by an easy-to-install (simply unzip the zip file), easy-to-use assembler, linker, debugger, and interpreter that runs on Windows, Mac OS X, Linux, and Raspbian.
Assembly Language and Computer Architecture Using C++ and Java Third Edition, 2020
- Minor revision of the highly-acclaimed first edition.
- Emphasizes system concepts.
- Program verification feature gives user immediate feedback on the correctness of the assigned programs.
- Accompanied by a software package that supports Windows, Linux, Mac OS X, and Raspbian (available as a free download).
Writing Interpreters and Compilers for the Raspberry Pi Using Python Second Edition, 2020
- Only prerequisite is experience with any programming language.
- You do not need a Raspberry Pi. The software package for the book includes an ARM/Raspberry Pi assembly language interpreter/debugger. Allows you to run ARM/Raspberry Pi assembly language programs
on a Windows, OS X, or Linux system.
- Covers Python, bytecode, ARM/Raspberry Pi assembly language, language processing theory, interpreters, and compilers.
- Covers three types of language processors: pure interpreters, hybrid interpreters, and compilers.
- The entire book is Python oriented.
Assembly Language and Computer Architecture Using C++ and Java
, Course Technology, 2004
- Covers system concepts thoroughly
and concretely. For example, students not only study instruction
sets, they implement and evaluate their own.
- Provides an invaluable "under-the-hood" examination of C++ and Java.
- Software runs on MS-DOS, Windows,
Sun SPARC Solaris, X86 Linux, and Macintosh OS X.
- Includes coverage of the SPARC, Pentium, and the Java Virtual
Machine.
Introduction to Programming Using Java
, Jones and Bartlett, 2010
- Comprehensive treatment of Java in a short, easy-to-read format.
- Includes a lab manual.
- Errata in textbook
Compiler Construction Using Java, JavaCC, and Yacc, IEEE/Wiley, 2012
- Comprehensive treatment of compiler construction.
- JavaCC and Yacc coverage optional.
- Entire book is Java oriented.
- Powerful software package available to students that tests and
evaluates their compilers.
- Fully defines many projects so students can learn how to put the
theory into practice.
- Includes supplements on theory so that the book can be used in a
course that combines compiler construction with formal languages,
automata theory, and computability theory.
- Link
to sofware package
- Errata in textbook
Abstract Algebra: A Student-Friendly Approach, 2017
- Easy-to-read introduction to abstract algebra.
- Go-to book if you are having trouble understanding your required textbook or your professor.
- Covers prerequisite math, groups, rings, integral domains, fields, polynomials, vector spaces, lattices, and Boolean algebra.
- Gets you to think mathematically and to do mathematics--to experiment, make conjectures, and prove theorems--while reading the book.
- Only prerequisite is high school algebra.
Errata, errors, typos in Abstract Algebra: A Student-friendly Approach by AnthonyJ. Dos Reis
C and C++ Under the Hood, 2018
- Provides an invaluable insight into C and C++ in particular and programming language in general.
- Examines C and C++ at the assembly level.
- Learn how virtual functions work, what an object really is, how separately compiled C modules are linked together, how the argc and argv parameters are created, and more.
- Software package supports Windows, OS X, Linux, and Raspbian.
Constructing a Microprogrammed Computer, 2019
- Examines computer from transistor level to assembly language level.
- Shows how to implement a variety of instruction sets in microcode.
- Software package supports Windows, OS X, Linux, and Raspbian.