Skip to content
IndianCoder3

IndianCoder3/abhinu-dev_basic-ictl

CLILive in production

A basic Programming Language - Bridging the Gap between text based programming and block based coding.

Abhinu.Dev Basic ICTL: A basic programming language

3 0TclPush 2d agoListed 3d agoGPL-3.0

No GitHub topics on this repo.

  • Tcl81.5%
  • Python11.5%
  • Rich Text Format3.3%
  • JavaScript2.5%
  • HTML1.0%
  • Inno Setup0.3%
View on GitHub

Report a problem

1 Review

Abhinu.Dev Basic ICTL is a charming and surprisingly broad beginner-programming project. The core idea is clear: give new learners something more code-like than Scratch, but less intimidating than jumping straight into Python. The README frames that mission well with “Everyone Can Code!”, and the language surface matches the goal: Program.Main, Terminal.Echo, Variables.Name, Math.Eval, Program.Loop, Lists.Push, Kachua turtle graphics, and GUI commands are readable enough that a student can guess what many lines do before learning formal syntax.
The project has more tooling than I expected from the repository name. There is a Python interpreter entry point in main.py, an interactive shell in shell.py, a parser/runtime split, a detailed COMMAND_REFERENCE.md, a web editor link, PyQt/PySide GUI work, and a VS Code extension with syntax highlighting, hover docs, completions, snippets, and F5 execution for .ictl files. That ecosystem matters for an educational language: learners need a friendly loop where they can type, run, see errors, and try again. I especially liked the attention to beginner-friendly errors in error_handler.py, including line context and caret-style pointers, plus the REPL help that explains commands with examples.
The language is also moving in a good direction technically. The README explicitly calls out that older versions used Python eval() for Math.Eval() and says newer versions moved to a custom math parser, which is the right kind of transparency for a learning tool. The GPL-3.0 license is clear, and HISTORY.md gives useful context about the project’s evolution, including lists, GUI, Kachua graphics, SymPy/NumPy bridges, and case-insensitive commands.
The main thing holding the repo back is organization. The actual README is lowercase readme.md, so GitHub may not surface it as cleanly as expected, and the repository includes a very large publish/ tree with bundled release artifacts and internal dependency files. I would move releases to GitHub Releases and keep the source repo lighter. I also did not find a real automated test suite or CI workflow, and language interpreters benefit enormously from regression tests, especially for nested if/else, loops, parsing errors, and command behavior. Overall, ICTL has a warm educational purpose and a surprisingly complete toolchain; tightening repo structure and adding tests would make it much easier for contributors and teachers to trust it.

IndianCoder3
@IndianCoder35h ago

Thank you for the review! I look forward to improve this as much as I can! I am right now working on another project (AstralyxPvP/AstralyxPvP-site) and its almost done and I am next going to like make it easier a bit... I think maybe I should like do I change Variables.[name] syntax to just [name]? I'm a bit confused in this... Also the VS Code extension is on the marketplace for VS Code, but it isn't that great right now... looking to quickly finish the site and come back to ICTL...

IndianCoder3
@IndianCoder35h ago

Well Actually before commiting, I did do mannual tests, working on automation soon...