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.
๐ 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
-
Clone the repository:
git clone https://github.com/James-HoneyBadger/Time_Warp_Classic.git cd Time_Warp_Classic
-
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
-
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 instancesample_programs- Example programs for each languageroot- Tkinter root window for GUI tests
๐ Getting Started
Using the GUI
When you launch Time_Warp.py, you'll see the main IDE interface:
- Select Language - Choose from the dropdown (PILOT, BASIC, Logo, etc.)
- Write Code - Use the left editor panel
- Run Program - Press F5 or use Program โ Run Program
- 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:
- Program โ Load Example
- Select a language submenu
- Choose an example program
Via File Menu:
- File โ Open File...
- Navigate to
examples/[language]/ - Select an example file
๐ Documentation
User Documentation
- User Manual - Complete guide to using the IDE
- Quick Start Guide - Get up and running quickly
- Example Programs - Guided tour of example programs
Technical Documentation
- Technical Manual - Architecture and implementation details
Additional References
- Documentation Index - Doc suite overview
๐จ 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
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes and test thoroughly
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b7fbeb47ed0fd21d3adb9cd5d7aab762b3cc0d9639f34bece035415c7dff21c
|
|
| MD5 |
57597bde2293a682afaf839101dac611
|
|
| BLAKE2b-256 |
a2566820e01394d598a34f5b732e87cb76628076763b741887814653209030be
|
File details
Details for the file timewarp_classic-1.3.0-py3-none-any.whl.
File metadata
- Download URL: timewarp_classic-1.3.0-py3-none-any.whl
- Upload date:
- Size: 376.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
098c38d7c357aaae9b374358df88f43b35c64d6ab372b4ce44b0cd2d17e39f30
|
|
| MD5 |
c764aa931074c09ea0f803d5739f4d55
|
|
| BLAKE2b-256 |
038661e428cbbc59b2a419683cdb041c342ba165ec8346bea447863ed81e1094
|