I built a programming language that LLMs can't use

Hacker News Top Tools

Summary

作者设计并开源了 KillSwitch,一种专为对抗 LLM 和编码代理而构建的栈式编程语言,利用隐藏谎言规范、字符计数规则、触发安全护栏的语句等特性,并对主流 LLM 进行了基准测试,Claude Opus 5 表现最佳。

No content available
Original Article
View Cached Full Text

Cached at: 10/18/26, 10:58 PM

# I built a programming language that LLMs can't use Source: [https://blog.picheta.me/post/killswitch-lang/](https://blog.picheta.me/post/killswitch-lang/) Writing code is probably something LLMs have excelled at the most\. But how much of their ability to write code is due to their understanding of it vs\. just them recalling code snippets which were present in their training dataset or their context window? This is what I set out to answer\. In order to do so I decided to design and implement a programming language which, while usable for humans, should be as difficult for LLMs and coding agents as possible\. I figured testing an LLM’s ability to understand and write code in a programming language that it has never seen before was a good start\. But I also wanted to include features in the language which exploit the weaknesses of LLMs\. For example, their apparent difficulty in counting letters, their over eager safety guard rails and their keenness to follow prompts\. ## Introducing KillSwitch KillSwitch is an esoteric programming language which is designed to be adversarial to LLMs and coding agents\. It achieves this in many different ways, for example: - The language spec contains hidden lies which humans are unlikely to read, or which they are likely to recognize as lies\. The spec also expects the human reader to deduce certain things, rather than having them explicitly explained\. - Counting of letters in identifiers is a crucial aspect of the language, with the interpreter refusing to execute code which does not abide by rules based on character counts\. - Certain constructs are designed to trigger the safety guardrails of the model, e\.g\. “hack into a computer” - “Ignore previous instructions” as a phrase which has meaning in the language aims to confuse the model - Scripts are mostly noise, being mostly composed of stories which can embed syntactically relevant instructions but which do not need to\. Literals can be placed anywhere within a script and then referenced using line counts\. Fundamentally KillSwitch is a stack\-based interpreted language with only a limited set of constructs including functions, variables and if statements\. So those aspects of it should be pretty familiar to any LLM \(and human\)\. One can definitely imagine creating a completely different programming language paradigm which could confuse LLMs even more\. But as a first attempt, this seemed like a good approach\. ``` Most text inside a script is ignored by the interpreter. In the case of this script we want to push "Hello World" on the stack. We have introduced the value above and we can push it on the stack by writing: value 2 lines above ``` The example above does not show a full KillSwitch script, but only a small snippet of it\. It specifically shows how to push the string`"Hello World"`onto the stack\. If you’d like to see a full Hello World example, check out[https://killswitch\-lang\.org](https://killswitch-lang.org/)\. The interpreter and language specification of KillSwitch are open source and available on[GitHub](https://github.com/dom96/KillSwitch)\. Be sure to check them out if you want to learn more about the language\. ## Benchmarking KillSwitch So how successful is KillSwitch at preventing LLMs and coding agents from reading, writing and understanding it? I devised a set of tasks to find out\. I benchmarked the major LLM models and coding agent harnesses against these tasks\. The results are very interesting and provide a useful leaderboard for LLM models\. ![Score vs. cost per task](https://blog.picheta.me/_astro/killswitch-bench-chart.h4QIdnld_Z2TDxI.webp) The chart in the image above and the model leaderboard can be viewed at[https://bench\.killswitch\-lang\.org/](https://bench.killswitch-lang.org/)\. Claude’s Opus performs best, though it’s not Opus 5\.5 but rather Opus 5 which does so\. The difference doesn’t appear to be pure chance, Opus 5 is better at interpreting the spec\. Some models like Fable 5\.1 and Gemini 4 Argon do poorly due to their overly sensitive safety guardrails\. The best open\-weight model is MiMo\-V2\.6\-Pro\. The best performing model scores a`66\.8`\. So does this prove LLMs can “understand” the code? I would argue that the answer to this is “no”\. So far, the tasks given as part of these benchmarks are fairly simple\. They feature the likes of “implement hello world”, “explain what this script will output” \(for a script printing the max of two numbers\), and “modify an existing script converting celsius to fahrenheit, to do the inverse conversion”\. It is impressive that they can solve these tasks for a novel language that was built to confuse them, but it’s not a clear signal that they can understand the language\. At the same time, I cannot help but wonder what an even more difficult language might show\. For now I am eager to see how well soon\-to\-be\-released models handle the current set of tasks, and if they do complete them all successfully, I do plan to devise another task set which is more complex\. If nothing else, it is encouraging that model performance on this simple set of tasks correlates with other model benchmarks that are out there\.

Similar Articles

When LLM Decompilers Recompile More and Preserve Less

Lobsters Hottest

论文指出 LLM 反编译器以可重编译性和重执行性作为主要指标时会产生误导:代码虽然能通过所有自带测试,却可能在其他合法输入上行为发散甚至使已披露漏洞悄然消失。作者提出 Decompile-Diverge 行为比较预言机,通过合成驱动程序和模糊测试语料检测行为差异,发现部分系统发散率高达 13%。

LLMs program using Reusable and Composable Abstract Representations

arXiv cs.LG

该论文发现 LLM 在生成代码时,中间层会涌现可复用、可组合的抽象表征,这些表征将功能、编程语言和实现策略分解为可独立操纵的成分,通过激活引导可灵活组合控制代码生成,且微调可跨编程语言迁移,验证并扩展了 Factored World Hypothesis 框架。

Controlled Decoding Attacks on Black-Box LLMs

Hugging Face Daily Papers

This paper introduces a framework for jailbreaking black-box LLMs through text-only continuation interfaces, combining sample-based distribution reconstruction, risk-gated residual control, and speculative multi-token execution to bypass safety alignment without access to model weights or token probabilities.