Skip to main content

Multi-language interpreter with turtle graphics support

Project description

Time Warp Classic

A Multi-Language Programming Environment for Vintage and Modern Languages Geared to get back to the basics of Time Warp.

Time_Warp Classic is a sophisticated educational IDE that bridges the past and present of programming, supporting 9 programming languages through an elegant graphical interface with integrated turtle graphics, inspired by the golden age of computing.

Version Python License


๐ŸŒŸ Features

Multi-Language Support

Execute code in 9 different programming languages, each with full language-specific features:

  • PILOT - Educational computer-assisted instruction
  • BASIC - Classic line-numbered programming with turtle graphics
  • Logo - Visual turtle graphics programming
  • Pascal - Structured programming with strong typing
  • Prolog - Logic programming with facts and rules
  • Forth - Stack-based concatenative programming
  • Perl - Text processing and pattern matching
  • Python - Modern general-purpose programming
  • JavaScript - Web scripting with ES6+ features

Professional IDE Interface

  • Refined Menu System - File, Edit, Program, Debug, Test, Preferences, About
  • Integrated Editor - Syntax-aware code editing with undo/redo
  • Syntax Highlighting - Real-time syntax coloring for all supported languages
  • Line Numbers - Always-visible line numbering for easy navigation
  • Real-time Output - Immediate program execution feedback
  • Turtle Graphics Canvas - Visual programming with integrated graphics display
  • Theme Support - 9 color themes with persistence
  • Debug Tools - Debug mode, breakpoints, error history tracking
  • Enhanced Error Messages - Detailed error reporting with line numbers
  • Customizable Fonts - 7 font sizes plus system monospace choices
  • Panel Management - Resizable output and graphics panels

Educational Focus

  • Enhanced Error Messages - Detailed error reporting with line numbers and context
  • Debug Tools - Step-through debugging, breakpoint management, error history
  • Testing Framework - Built-in test suite with smoke tests and comprehensive coverage
  • Example programs for every language
  • Immediate execution feedback
  • Visual programming support
  • Interactive learning environment

๐Ÿ“ฆ Installation

Prerequisites

  • Python 3.9 or higher
  • tkinter (usually included with Python)
  • pip package manager
  • Node.js (for JavaScript execution)
  • Perl (for Perl execution)

Quick Start

  1. Clone the repository:

    git clone https://github.com/James-HoneyBadger/Time_Warp_Classic.git
    cd Time_Warp_Classic
    
  2. Install dependencies:

    pip install -r requirements.txt
    

    Or use a virtual environment (recommended):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -r requirements.txt
    
  3. Launch the IDE:

    python Time_Warp.py
    

๐Ÿงช Testing

Time_Warp_Classic includes a comprehensive test suite to ensure code quality and reliability.

Running Tests

From Command Line

# Run all tests
python scripts/run_tests.py

# Run specific test types
python scripts/run_tests.py unit        # Unit tests only
python scripts/run_tests.py integration # Integration tests only
python scripts/run_tests.py smoke       # Quick smoke test

# Run with coverage
python scripts/run_tests.py --coverage

From Within the Application

Use the Test menu in the IDE:

  • Run Smoke Test - Quick functionality check
  • Run Full Test Suite - Complete test suite with verbose output
  • Open Test Directory - Browse test files

Test Structure

tests/
โ”œโ”€โ”€ conftest.py          # Shared fixtures and configuration
โ”œโ”€โ”€ unit/               # Unit tests for individual components
โ”‚   โ”œโ”€โ”€ test_interpreter.py    # Core interpreter tests
โ”‚   โ”œโ”€โ”€ test_languages.py      # Language executor tests
โ”‚   โ””โ”€โ”€ test_syntax_highlighting.py
โ”œโ”€โ”€ integration/        # Integration tests for workflows
โ”‚   โ””โ”€โ”€ test_execution.py
โ””โ”€โ”€ language/           # Language-specific tests

Writing Tests

Tests use pytest with fixtures for common setup:

  • interpreter - Fresh interpreter instance
  • sample_programs - Example programs for each language
  • root - Tkinter root window for GUI tests

๐Ÿš€ Getting Started

Using the GUI

When you launch Time_Warp.py, you'll see the main IDE interface:

  1. Select Language - Choose from the dropdown (PILOT, BASIC, Logo, etc.)
  2. Write Code - Use the left editor panel
  3. Run Program - Press F5 or use Program โ†’ Run Program
  4. View Results - See output in the right panel and graphics below

Quick Example

Try this Logo program:

REPEAT 4 [
  FORWARD 100
  RIGHT 90
]

Or this BASIC program:

10 PRINT "Hello from the past!"
20 FOR I = 1 TO 5
30   PRINT "Count: "; I
40 NEXT I
50 END

Loading Examples

Via Menu:

  1. Program โ†’ Load Example
  2. Select a language submenu
  3. Choose an example program

Via File Menu:

  1. File โ†’ Open File...
  2. Navigate to examples/[language]/
  3. Select an example file

๐Ÿ“š Documentation

User Documentation

Technical Documentation

Additional References

๐ŸŽจ Supported Languages

Vintage Languages

PILOT (1968)

Computer-Assisted Instruction language designed for educational software.

T:Welcome to PILOT programming!
A:What is your name?
T:Hello, *NAME*!

BASIC (1964)

The classic beginner's language with line numbers and turtle graphics.

10 PRINT "Drawing a square..."
20 FOR I = 1 TO 4
30   FORWARD 100
40   RIGHT 90
50 NEXT I

Logo (1967)

Educational language famous for turtle graphics.

REPEAT 36 [
  FORWARD 100
  RIGHT 10
]

Pascal (1970)

Structured programming language emphasizing clear code.

program Hello;
begin
  WriteLn('Hello from Pascal!');
end.

Prolog (1972)

Logic programming with facts, rules, and queries.

parent(john, mary).
parent(john, tom).
sibling(X, Y) :- parent(P, X), parent(P, Y), X \= Y.

Forth (1970)

Stack-based concatenative programming language.

: SQUARE DUP * ;
5 SQUARE .

Modern Languages

Perl (1987)

Powerful text processing and scripting.

my @numbers = (1, 2, 3, 4, 5);
my $sum = 0;
$sum += $_ for @numbers;
print "Sum: $sum\n";

Python (1991)

Clean, readable general-purpose programming.

numbers = [1, 2, 3, 4, 5]
squares = [n**2 for n in numbers]
print(f"Squares: {squares}")

JavaScript (1995)

Modern web scripting with ES6+ features.

const numbers = [1, 2, 3, 4, 5];
const squares = numbers.map(n => n ** 2);
console.log(`Squares: ${squares}`);

๐Ÿ—‚๏ธ Project Structure

Time_Warp_Classic/
โ”œโ”€โ”€ Time_Warp.py              # Main application entry point
โ”œโ”€โ”€ README.md                 # This file
โ”œโ”€โ”€ requirements.txt          # Python dependencies
โ”œโ”€โ”€ pyproject.toml           # Modern Python configuration
โ”‚
โ”œโ”€โ”€ core/                    # Core interpreter engine
โ”‚   โ”œโ”€โ”€ interpreter.py       # Central execution engine
โ”‚   โ”œโ”€โ”€ languages/           # Language-specific executors
โ”‚   โ”‚   โ”œโ”€โ”€ pilot.py         # PILOT executor
โ”‚   โ”‚   โ”œโ”€โ”€ basic.py         # BASIC executor
โ”‚   โ”‚   โ”œโ”€โ”€ logo.py          # Logo executor
โ”‚   โ”‚   โ”œโ”€โ”€ pascal.py        # Pascal executor
โ”‚   โ”‚   โ”œโ”€โ”€ prolog.py        # Prolog executor
โ”‚   โ”‚   โ”œโ”€โ”€ forth.py         # Forth executor
โ”‚   โ”‚   โ”œโ”€โ”€ perl.py          # Perl executor
โ”‚   โ”‚   โ”œโ”€โ”€ python.py        # Python executor
โ”‚   โ”‚   โ””โ”€โ”€ javascript.py    # JavaScript executor
โ”‚   โ”œโ”€โ”€ features/            # Advanced features
โ”‚   โ””โ”€โ”€ utilities/           # Helper utilities
โ”‚
โ”œโ”€โ”€ examples/                # Example programs (organized by language)
โ”‚   โ”œโ”€โ”€ README.md           # Examples documentation
โ”‚   โ”œโ”€โ”€ pilot/              # PILOT examples
โ”‚   โ”œโ”€โ”€ basic/              # BASIC examples
โ”‚   โ”œโ”€โ”€ logo/               # Logo examples
โ”‚   โ”œโ”€โ”€ pascal/             # Pascal examples
โ”‚   โ”œโ”€โ”€ prolog/             # Prolog examples
โ”‚   โ”œโ”€โ”€ forth/              # Forth examples
โ”‚   โ”œโ”€โ”€ perl/               # Perl examples
โ”‚   โ”œโ”€โ”€ python/             # Python examples
โ”‚   โ””โ”€โ”€ javascript/         # JavaScript examples
โ”‚
โ”œโ”€โ”€ docs/                   # Comprehensive documentation
โ”‚   โ”œโ”€โ”€ README.md           # Documentation index
โ”‚   โ”œโ”€โ”€ user/               # User-facing guides
โ”‚   โ”‚   โ”œโ”€โ”€ USER_MANUAL.md  # Complete user guide
โ”‚   โ”‚   โ””โ”€โ”€ QUICKSTART.md   # Quick start guide
โ”‚   โ””โ”€โ”€ dev/                # Developer-facing docs
โ”‚       โ””โ”€โ”€ TECHNICAL_MANUAL.md # Technical architecture
โ”‚
โ””โ”€โ”€ scripts/                # Launcher scripts
    โ”œโ”€โ”€ launch.py           # Python launcher
    โ”œโ”€โ”€ launch_Time_Warp.sh # Shell launcher
    โ””โ”€โ”€ start.sh            # Simple launcher

โŒจ๏ธ Keyboard Shortcuts

Program Execution

  • F5 - Run current program

File Operations

  • Ctrl+N - New file
  • Ctrl+O - Open file
  • Ctrl+S - Save file
  • Ctrl+Q - Exit application

Editing

  • Ctrl+Z - Undo
  • Ctrl+Y - Redo
  • Ctrl+X - Cut
  • Ctrl+C - Copy
  • Ctrl+V - Paste
  • Ctrl+A - Select all

๐ŸŽฏ Use Cases

Education

  • Learn Programming Fundamentals - Start with PILOT or BASIC
  • Explore Programming Paradigms - Compare procedural, logic, and functional styles
  • Visual Learning - Use Logo for immediate visual feedback
  • Historical Perspective - Experience the evolution of programming languages

Hobbyist Programming

  • Retro Computing - Experience classic languages on modern hardware
  • Creative Coding - Use turtle graphics for artistic expression
  • Language Exploration - Try 9 languages without multiple installations
  • Quick Prototyping - Test algorithms in different paradigms

Teaching

  • Classroom Tool - Teach multiple languages with one IDE
  • Interactive Lessons - Use example programs as teaching aids
  • Comparative Learning - Show same concepts across languages
  • Hands-on Practice - Immediate execution and feedback

๐Ÿ”ง System Requirements

Minimum Requirements

  • OS: Windows 7+, macOS 10.12+, Linux (any modern distribution)
  • Python: 3.9 or higher
  • RAM: 512 MB
  • Display: 1024x768 or higher

Recommended Requirements

  • OS: Windows 10+, macOS 11+, Ubuntu 20.04+
  • Python: 3.11 or higher
  • RAM: 2 GB
  • Display: 1920x1080 or higher

Required Python Packages

  • tkinter - GUI framework (usually included with Python)
  • pygame - Graphics support (installed automatically)
  • Pillow - Image processing (installed automatically)

Optional Packages

  • pygments - Syntax highlighting (for advanced features)
  • pytest - Testing framework (for development)
  • black - Code formatting (for development)
  • flake8 - Linting (for development)

๐Ÿค Contributing

Contributions are welcome! Please see DEVELOPER_GUIDE.md for detailed information.

Quick Contributing Guide

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes and test thoroughly
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Development Setup

# Clone your fork
git clone https://github.com/YOUR_USERNAME/Time_Warp_Classic.git
cd Time_Warp_Classic

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies including dev tools
pip install -r requirements.txt
pip install pytest black flake8 mypy

# Run tests
pytest

# Format code
black .

# Lint code
flake8

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

  • PILOT Language - Inspired by John Amsden Starkweather's original 1968 design
  • BASIC - Tribute to Kemeny and Kurtz's accessible programming vision
  • Logo - Honoring Seymour Papert's educational computing legacy
  • Classic Computing Community - For keeping vintage computing alive
  • Open Source Contributors - Everyone who helps improve Time_Warp

๐Ÿ“ž Support

  • Documentation: See the docs/ directory
  • Issues: Report bugs on GitHub Issues
  • Questions: Check the FAQ first
  • Community: Share your programs and experiences!

๐ŸŽ“ Learning Resources

For Beginners

Start with PILOT or BASIC, then try Logo for visual programming.

For Intermediate Programmers

Explore Pascal for structured programming, then try Prolog for logic programming.

For Advanced Users

Compare implementations across all 9 languages, or extend the interpreter with new features.


๐Ÿšง Roadmap

  • Code completion and IntelliSense
  • Syntax highlighting in editor
  • Debugger with breakpoints
  • More example programs
  • Language tutorials
  • Plugin system for custom languages
  • Export programs to standalone executables
  • Web-based version

Time_Warp Classic - Programming Through the Ages ๐Ÿ•ฐ๏ธ

ยฉ 2025 Honey Badger Universe | Educational Software

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

timewarp_classic-1.3.0.tar.gz (437.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

timewarp_classic-1.3.0-py3-none-any.whl (376.2 kB view details)

Uploaded Python 3

File details

Details for the file timewarp_classic-1.3.0.tar.gz.

File metadata

  • Download URL: timewarp_classic-1.3.0.tar.gz
  • Upload date:
  • Size: 437.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for timewarp_classic-1.3.0.tar.gz
Algorithm Hash digest
SHA256 5b7fbeb47ed0fd21d3adb9cd5d7aab762b3cc0d9639f34bece035415c7dff21c
MD5 57597bde2293a682afaf839101dac611
BLAKE2b-256 a2566820e01394d598a34f5b732e87cb76628076763b741887814653209030be

See more details on using hashes here.

File details

Details for the file timewarp_classic-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for timewarp_classic-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 098c38d7c357aaae9b374358df88f43b35c64d6ab372b4ce44b0cd2d17e39f30
MD5 c764aa931074c09ea0f803d5739f4d55
BLAKE2b-256 038661e428cbbc59b2a419683cdb041c342ba165ec8346bea447863ed81e1094

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page