[go: up one dir, main page]

Skip to content

paralleldrive/sudolang-llm-support

Repository files navigation

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 programmatic 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.
  • Mermaid diagrams for visualizing complex topics like architecture, flow control, and sequence descriptions.
  • Options for customizing the behavior of your program. See the example.

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

  1. Clone the SudoLang repository from GitHub.
  2. Make sure the code command is in your path.
  3. CMD+SHIFT+P
  4. Type code - don't press enter.
  5. Select "Shell command: Install 'code' in PATH."
  6. Open up a terminal in the project root folder.
  7. code --install-extension sudolang-llm-support-2.0.0-rc.1.vsix
  8. 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

About

SudoLang LLM Support for VSCode

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published