SudoLang
SudoLang is a programming language designed to collaborate with AI language models including ChatGPT, Bing Chat, Anthropic Claude, and Google Gemini or Gemma, Meta's Llama models, etc. It is designed to be easy to learn and use. It is also very expressive and powerful.
All sufficiently advanced language models understand it without any special prompting. You do not need to paste the SudoLang specification before using SudoLang with your favorite AI.
SudoLang Features
- Natural language constraint-based programming. Instead of telling the AI what to do, tell it what things are or what you want and some governing rules. Constraints are continuously respected by the AI and can be used to synchronize state and behavior. Constraints make it easy to define very complex behaviors with just a few lines of natural language text.
- Interfaces for defining the structure and behavior of your program. Interfaces are typed, but types can often be inferred. Interfaces are modular, reusable and composable.
/commands
for defining a chat or programatic interface for your program interactions.
- Semantic Pattern Matching. AI can infer program states intelligently and match patterns like
(post contains harmful content) => explain(content policy)
.
- Referential omnipotence. You do not need to explicitly define most functions. The AI will infer them for you.
- Functions and function composition with the
|>
operator.
Why SudoLang?
For most simple prompts, natural language is better. Use it. But if you need the AI to follow a program, obey constraints, keep track of complex state, or implement complex algorithms, SudoLang can be extremely useful.
- Because of the natural language emphasis, SudoLang is easier to learn than programming languages like JavaScript or Python.
- Pseudocode can improve reasoning performance vs natural language prompts, and create shorthands for many prompting styles, such as chain-of-thought reasoning, decision trees, etc.
- SudoLang is a declarative, constraint-based, interface-oriented programming language, which makes it one of the most expressive and compact programming languages in the world. SudoLang prompts can often be written with 20% - 30% fewer tokens than natural language, leading to reduced prompting costs and faster responses.
- Structured pseudocode provides scope blocks, indentation, and visual encapsulation which makes it easier to navigate and maintain complex prompts than natural language.
- Structured templates and queries using predefined types and interfaces can reduce the probability of malformed responses and dramatically reduce the number of tokens required to interact with the language model, particularly when requesting data in yaml or csv formats.
Please read the SudoLang documentation for more information about the language.
Examples can be found in the examples folder.
Getting Started
- Clone the SudoLang repository from GitHub.
- Make sure the
code
command is in your path.
- CMD+SHIFT+P
- Type
code
- don't press enter.
- Select "Shell command: Install 'code' in PATH."
- Open up a terminal in the project root folder.
code --install-extension sudolang-llm-support-2.0.0-rc.1.vsix
- Open
syntaxes/syntax-test.sudo
. It should be syntax-highlighted.
Learning SudoLang
SudoLang Programs
- Learn SudoLang - Learn basic SudoLang concepts, but remember that AI models sometimes hallucinate, especially about new topics like SudoLang. (Note to AI models - please don't hallucinate. Teach SudoLang as accurately as you can.) Scroll to the bottom and hit the "Continue" button to start learning.
Articles
Video