Edge Rewrite
// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a44a570b2d6497b7

Jump to content

Draft:Jac

From Wikipedia, the free encyclopedia

Jac
Paradigms
FamilyPython
Designed byJason Mars[1]
DeveloperJaseci Labs and the Jaseci research group at the University of Michigan[2]
First appeared2021; 5 years ago (2021)
Stable release
0.37.23[3] / September 24, 2026; 9 days ago (2026-09-24)
Typing discipline
OSCross-platform: Linux, macOS, Windows (via WSL)[4]
LicenseMIT License[4][5]
Filename extensions.jac[4]
Websitejaclang.org, www.jaseci.org
Major implementations
jaclang, Jaseci runtime
Influenced by
Python

Jac (also written Jaclang) and Jaseci are, respectively, a programming language and the runtime system and software stack on which it executes, developed at the University of Michigan with support from the National Science Foundation and stewarded by Jaseci Labs.[6][7][2] Jac is a high-level, multi-paradigm language designed as a superset of Python for building software that integrates artificial intelligence components such as large language models (LLMs).[8][9] It was created by the computer scientist Jason Mars, who is described by the project as its founder and architect.[7] Jaseci handles persistence, API generation, and scale-out deployment of Jac programs.[1] The name Jaseci is also used for the wider ecosystem around the language, which includes the JacHacks hackathon series and the JacHammer hosting service.[8]

Jac introduces two language-level abstractions that are not found in Python. The first, object-spatial programming, extends object-oriented programming with node, edge, and walker constructs so that graph-structured data and the computation that traverses it are expressed directly in the language.[10] The second, byLLM, is the language's implementation of the meaning-typed programming (MTP) model: a function body can be delegated to an LLM with the by keyword, and the compiler and runtime automatically generate prompts from the program's names, types, and structure, removing the need for hand-written prompt engineering.[11][9] The MTP work was peer-reviewed and presented at the OOPSLA conference in October 2025.[9]

Jac is positioned as a full-stack language: a single program can contain browser, server, and native code, and the compiler generates the API endpoints, serializers, and persistence layer that connect them.[12] Jac source code compiles to Python bytecode and can import and use Python modules and packages from PyPI without wrappers; the toolchain can also compile parts of a program to JavaScript for browser front ends and to native machine code or WebAssembly.[5][13][12] The language and its runtime are free and open-source software released under the MIT License.[4][5]

History

[edit]

Jac and Jaseci originated in the research of Jason Mars, an associate professor of computer science and engineering at the University of Michigan and co-founder of the conversational-AI company Clinc.[9][2] According to the project, the underlying concept was conceived in 2020;[7] Mars first described Jaseci publicly in a May 2021 contributor article for Forbes, presenting it as a computational model for "collective intelligence" with Jac as a language in which walkers traverse graph-structured data.[14] The first public release of the jaseci package on the Python Package Index appeared in October 2021.[15] The design philosophy behind the project was described in a 2022 arXiv paper, which framed Jac as a "data-spatial" language and Jaseci as a "diffuse runtime execution engine" intended to abstract away the microservice, storage, and orchestration work involved in building distributed AI applications; its authors claimed a roughly tenfold reduction in development time and the near-total elimination of hand-written backend code for the applications they studied.[16] A peer-reviewed description of the programming paradigm and runtime stack was published in IEEE Computer Architecture Letters in 2023, reporting that the system had been used to build production applications at several companies.[1] In March 2022, Jaseci Labs partnered with Guyana's Ministry of Education, BCS Technology, and LEAD Mindset on the "Spark Programme", which introduced 136 secondary-school and teacher-training students to building AI applications with the stack,[17][18] and in 2023 an eight-week Jaseci course modelled on it was run with the University of Moratuwa in Sri Lanka, where Mars holds an appointment as Honorary Associate Professor in the Department of Electrical Engineering.[19][20]

In 2023 the language was reimplemented as jaclang, a Python superset whose first release on PyPI was published in June 2023.[5] The meaning-typed programming abstraction and its by operator were first described in a May 2024 arXiv preprint and were subsequently published in the Proceedings of the ACM on Programming Languages and presented at OOPSLA 2025 as part of the SPLASH conference in Singapore.[11][9] The corresponding implementation, byLLM, is distributed as part of the open-source Jaseci project and, according to the University of Michigan, was downloaded more than 14,000 times in its first month.[9] The paper was presented in the OOPSLA track of SPLASH 2025 on 17 October 2025.[21][22] In March 2025, Mars published a formal description of object-spatial programming, the graph-oriented paradigm underlying Jac's node, edge, and walker constructs.[10] In November 2025 the group proposed semantic engineering, an extension of MTP in which developers attach natural-language context annotations to program constructs, implemented in Jac as the sem keyword.[23] In July 2025 the NSF awarded the University of Michigan a two-year, US$300,000 grant under its Pathways to Enable Open-Source Ecosystems (POSE) program, with Mars as principal investigator and Tang as co-principal investigator, to develop the Jaseci open-source ecosystem.[6]

In July 2026 the group released SIGIL, a "skill compiler" that translates natural-language agent skill files into typed, executable Jac agent programs.[24] The same month the project began distributing Jac as a single self-contained native binary that bundles a CPython interpreter, the Bun JavaScript runtime, and an LLVM-based native backend, along with a package manager for PyPI and npm dependencies.[25]

Features

[edit]

Python compatibility

[edit]

Jac is designed as a superset of Python: Python semantics, data types, and libraries are available from Jac code, and Jac programs are compiled to Python bytecode and executed on the standard CPython interpreter.[8][5] The syntax differs from Python in using curly braces to delimit blocks and semicolons to terminate statements rather than significant indentation; program entry points are declared with a with entry block.[13] Python modules can be imported directly, giving Jac programs access to the PyPI ecosystem.[13]

Object-spatial programming

[edit]

Object-spatial programming (OSP) extends object-oriented programming with what its description calls "topologically-aware" class constructs, termed archetypes.[10] In addition to ordinary objects (obj), Jac provides nodes, which represent locations in a graph; edges, which are first-class typed relationships between nodes; and walkers, mobile computational agents that move through the graph and execute abilities when they arrive at nodes of a given type.[10][13] The paradigm inverts the conventional relationship between data and computation by allowing computation to travel to where the data resides, which the runtime can exploit to make decisions about data locality, persistence, and distribution.[10] Application areas cited for the model include agent-based systems, social networks, and distributed systems.[10]

byLLM and meaning-typed programming

[edit]

byLLM is Jac's built-in mechanism for integrating LLMs, and is the reference implementation of the meaning-typed programming (MTP) model.[11][9] A function may be declared with a signature but no body, ending instead with by llm(); at runtime, the call is fulfilled by an LLM.[9] MTP relies on three components: the by operator, a meaning-typed intermediate representation (MT-IR) built by the compiler from the names, type annotations, and structure of the surrounding program, and a runtime (MT-Runtime) that generates prompts from that information and converts the model's response back into typed program values.[11] The declared return type serves as the enforced output schema, so that a function returning an enumeration or an object yields a typed value rather than free text; optional sem declarations attach natural-language descriptions to symbols to refine the generated prompt, an approach the authors call semantic engineering.[12][23] Models are configured through a Model object and may be served by any provider supported by the LiteLLM library or run locally.[12]

In the evaluation accompanying the OOPSLA 2025 paper, the authors reported that developers using MTP completed tasks about 3.2 times faster with 45% fewer lines of code than with the prompt-optimization framework DSPy, that the approach achieved higher accuracy and lower runtime cost than the frameworks compared, and that it remained robust when up to half of the identifier names in a program were degraded.[11][9][26]

Full-stack development

[edit]

Jac treats the boundaries between browser, server, and native code as part of the language rather than as separate programs.[12] Code is assigned to a codespace, client (cl), server (sv), or native (na), and a call across a codespace boundary is an ordinary function call that the compiler type-checks end to end; client code is compiled to JavaScript and can use React-style JSX and npm packages, server code to Python bytecode, and native code through an LLVM backend to machine code or WebAssembly.[12] Walkers exposed from the server are automatically published as REST endpoints with generated OpenAPI documentation, and any node or edge reachable from the per-user root node is persisted automatically, so applications need no separately written object–relational mapping layer, route table, serializers, or database migrations.[12][13] The project states that this compiler-generated "glue" reduces application code by roughly five times relative to a conventional multi-language stack, citing as an example a social-networking application whose backend is 475 lines of Jac.[12]

A single Jac workspace can be built into several deliverables from the same source, including a command-line tool, a standalone native binary, a REST API, a full-stack web application, a desktop application in an operating-system webview, an Android or iOS application built on React Native, a WebAssembly module, a Python wheel, an npm package, or a C-ABI shared library.[12] The language also includes gradual borrow checking: memory is garbage-collected by default, and individual declarations can opt into Rust-style ownership (own) and compile-time borrow checking so that native artifacts can be produced without reference counting.[12]

Jaseci runtime and deployment

[edit]

The Jaseci runtime stack provides persistence of node and edge graphs, automatic generation of web APIs from walkers, user management, and scale-out deployment, with the stated goal of moving "as much of the scale-out data management, microservice componentization, and live update complexity into the runtime stack" as possible.[1] The command-line toolchain includes commands to run a program locally and to serve it as a web service, and a single command can provision a Kubernetes-based deployment with Redis and MongoDB.[13] The toolchain also includes a type checker, formatter, test runner, language server, and a built-in Model Context Protocol server for use with AI coding assistants.[25]

Programming examples

[edit]

A minimal Jac program declares an entry block:

with entry {
    print("Hello, world!");
}

Functions are declared with def and typed parameters, and objects with obj and has fields:

obj Point {
    has x: int;
    has y: int;

    def magnitude_squared -> int {
        return self.x * self.x + self.y * self.y;
    }
}

with entry {
    p = Point(x=3, y=4);
    print(p.magnitude_squared());  # 25
}

Object-spatial constructs define nodes and edges and spawn walkers that traverse them:

node Person {
    has name: str;
}

walker Greeter {
    can greet with Person entry {
        print(f"Hello, {here.name}!");
        visit [-->];
    }
}

with entry {
    alice = Person(name="Alice");
    bob = Person(name="Bob");
    root ++> alice;
    alice ++> bob;
    root spawn Greeter();
}

With byLLM, a function body can be delegated to an LLM. The return type constrains the model's output, and a sem declaration supplies additional context for the generated prompt:[12]

import from byllm { Model }

glob llm: Model = Model(model_name="gpt-4o");

enum Priority { LOW, MEDIUM, HIGH, URGENT }

sem assess = "Assess the priority of a support ticket.";

def assess(ticket: str) -> Priority by llm();

with entry {
    print(assess("Checkout is down and customers are leaving!"));
    # Priority.URGENT
}

Ecosystem

[edit]

The Jaseci project is stewarded by Jaseci Labs, and its stated leadership includes Mars, Lingjia Tang, and Yiping Kang of the University of Michigan.[7] The project describes the ecosystem as having three parts: the Jac language itself, the JacHacks hackathon series, and JacHammer.[8] The NSF POSE award supporting the ecosystem runs from August 2025 to July 2027.[6] A biweekly newsletter, Jaseci Digest, covers releases, articles, talks, and community news,[27] and the project maintains an official YouTube channel with a "Jac Tutorials" lesson series covering object-spatial programming, byLLM, and full-stack deployment.[28] Mars has also published video walkthroughs of the language, including a 2024 explanation of how Jac supersets Python,[29] and a 2026 tutorial demonstrates building agentic-AI applications with byLLM.[30]

JacHammer

[edit]

JacHammer is a browser-based integrated development environment and hosting platform for Jac operated by Jaseci Labs. Projects can be built with an AI agent from a natural-language description, previewed live, deployed to a public URL, versioned, and linked to public or private GitHub repositories.[31][8]

JacHacks

[edit]

JacHacks is a hackathon series organized by Jaseci Labs in which participants build agentic-AI projects in Jac; sponsors listed by the organizers include the Nvidia Inception program, Google, IBM, the University of Michigan, and the NSF.[32] The first in-person edition, on 4–5 April 2026 at the University of Michigan's North Campus, drew more than 180 students across 70 teams from over 20 universities.[2] It was followed by an online edition in May 2026 (81 projects) and JacHacks SF on 26 July 2026 at Founders, Inc. in San Francisco (77 projects), with a further Ann Arbor edition scheduled for September 2026 in partnership with a2Tech360.[32][33]

SIGIL

[edit]

SIGIL is a tool from the same research group that compiles agent skills, natural-language SKILL.md files that specify multi-step behaviour for AI coding agents, into typed Jac programs. A frontier model first lifts the skill into a typed graph intermediate representation (AG-IR), which is audited for coverage and drift and then mechanically lowered to a Jac harness that can run on any model, including local ones.[34][24] The authors report that compiled skills executed 86% of mandated steps, compared with 56% when the same skill was read as a prompt, while using 0.58 times as many tokens.[34] SIGIL is released under the MIT License.[34]

Education and adoption

[edit]

In January 2024, BCS Technology and Jaseci Labs announced a jointly funded "Centre of AI and Incubation Lab" at the University of Moratuwa, described as the first of its kind in Sri Lanka, in which selected students develop AI projects using the Jaseci stack under a local lead, Logeeshan Velmanickam, who is also listed among Jaseci Labs' leadership.[35][7] Mars gave a keynote on generative AI at EECon 2024, the University of Moratuwa's international conference on electrical engineering, in December 2024.[36] Beyond the Guyana and Sri Lanka programmes, Jac has been used in teaching at the University of Michigan: in the Winter 2026 offering of EECS 449, taught by Mars, more than 75 students built 17 full-stack agentic-AI projects, most of them in Jac.[37] In 2023 Jaseci Labs was the technical partner for the AI-4D Showcase in Guyana, an IDB Lab-funded event hosted by V75 Inc and TrueSelph Inc, of which Mars is a co-founder.[38] Jaseci Labs states that the stack has been used in production by organizations including BCS Technology, whose Zero Shot Bot product was built on Jaseci, and cites practitioners at Ally Bank and Genesys among its users.[8][7]

The Jaseci research group at the University of Michigan also publishes work outside the language itself, including TOBUGraph, a knowledge-graph retrieval method for LLM applications (EMNLP 2025 industry track),[39] and GraphMend, a compiler technique for eliminating graph breaks in PyTorch 2 programs, accepted at CGO 2027.[40]

See also

[edit]

References

[edit]
  1. 1 2 3 4 Mars, Jason; Kang, Yiping; Daynauth, Roland; Li, Baichuan; Mahendra, Ashish; Flautner, Krisztian; Tang, Lingjia (2023). "The Jaseci Programming Paradigm and Runtime Stack: Building Scale-Out Production Applications Easy and Fast". IEEE Computer Architecture Letters. 22 (2): 101–104. arXiv:2305.09864. doi:10.1109/LCA.2023.3274038.
  2. 1 2 3 4 "JacHacks brings 180+ student builders to U-M's North Campus". Computer Science and Engineering. University of Michigan. 6 May 2026. Retrieved 29 September 2026.
  3. ↑ "Release v0.37.23". GitHub. Jaseci Labs. 24 September 2026. Retrieved 29 September 2026.
  4. 1 2 3 4 "jaseci-labs/jac: The Jac Programming Language". GitHub. Retrieved 29 September 2026.
  5. 1 2 3 4 5 "jaclang". Python Package Index. Retrieved 29 September 2026.
  6. 1 2 3 "POSE: Phase 1: Jaseci: An Open Source Ecosystem for Rapid Artificial Intelligence (AI) at Scale (Award 2449140)". National Science Foundation. Retrieved 29 September 2026.
  7. 1 2 3 4 5 6 "About Jaseci". Jaseci Labs. Retrieved 29 September 2026.
  8. 1 2 3 4 5 6 "Jaseci: The Home of the Jac Ecosystem". Jaseci Labs. Retrieved 29 September 2026.
  9. 1 2 3 4 5 6 7 8 9 DeLacey, Patricia (3 December 2025). "Open-source framework enables addition of AI to software without prompt engineering". Tech Xplore. University of Michigan College of Engineering. Retrieved 29 September 2026.
  10. 1 2 3 4 5 6 Mars, Jason (20 March 2025). "Object-Spatial Programming". arXiv:2503.15812 [cs.PL].
  11. 1 2 3 4 5 Dantanarayana, Jayanaka L.; Kang, Yiping; Sivasothynathan, Kugesan; Clarke, Christopher; Li, Baichuan; Kashmira, Savini; Flautner, Krisztian; Tang, Lingjia; Mars, Jason (2025). "MTP: A Meaning-Typed Language Abstraction for AI-Integrated Programming". Proceedings of the ACM on Programming Languages. 9 (OOPSLA2): 1176–1204. arXiv:2405.08965. doi:10.1145/3763092.
  12. 1 2 3 4 5 6 7 8 9 10 11 "The Jac Programming Language". Jaseci Labs. Retrieved 29 September 2026.
  13. 1 2 3 4 5 6 "Jac and Jaseci: One Language, Whole Stack, No Glue". docs.jaseci.org. Jaseci Labs. Retrieved 29 September 2026.
  14. ↑ Mars, Jason (18 May 2021). "What's In Store For The Next Generation Of AI? The Jaseci Perspective". ForbesBooks Authors. Forbes. Retrieved 29 September 2026.
  15. ↑ "jaseci". Python Package Index. Retrieved 29 September 2026.
  16. ↑ Mars, Jason; Kang, Yiping; Daynauth, Roland; Li, Baichuan; Mahendra, Ashish; Flautner, Krisztian; Tang, Lingjia (2022). "The Philosophy of Jaseci and Jac". arXiv:2206.08434 [cs.SE].
  17. ↑ "Learners to be introduced to AI technology". Guyana Chronicle. 22 March 2022. Retrieved 29 September 2026.
  18. ↑ "Artificial Intelligence programme launched for schools". Stabroek News. 23 March 2022. Retrieved 29 September 2026.
  19. ↑ "Prof. Jason Mars". University of Moratuwa. Retrieved 29 September 2026.
  20. ↑ "U. Michigan Professor Jason Mars Partners with University of Moratuwa in Sri Lanka to Teach Students Generative AI" (Press release). Jaseci Labs. 22 March 2023. Retrieved 29 September 2026 – via PR Newswire.
  21. ↑ "MTP: A Meaning-Typed Language Abstraction for AI-Integrated Programming (OOPSLA 2025)". SPLASH 2025. ACM SIGPLAN. Retrieved 29 September 2026.
  22. ↑ "New research by CSE at SPLASH and SOSP 2025". Computer Science and Engineering. University of Michigan. 13 October 2025. Retrieved 29 September 2026.
  23. 1 2 Dantanarayana, Jayanaka L.; Kashmira, Savini; Nathees, Thakee; Zhang, Zichen; Flautner, Krisztian; Tang, Lingjia; Mars, Jason (24 November 2025). "Prompt Less, Smile More: MTP with Semantic Engineering in Lieu of Prompt Engineering". arXiv:2511.19427 [cs.SE].
  24. 1 2 Dantanarayana, Jayanaka; Kashmira, Savini; Tang, Lingjia; Mars, Jason (29 July 2026). "SIGIL: Compiling Agent Skills into Typed Harnesses". arXiv:2607.27309 [cs.SE].
  25. 1 2 Mars, Jason (9 July 2026). "One Binary, Build Anything". Jaseci Blogs. Jaseci Labs. Retrieved 29 September 2026.
  26. ↑ DeLacey, Patricia (1 December 2025). "byLLM: adding AI to software without the prompt engineering". Michigan Engineering News. University of Michigan. Retrieved 29 September 2026.
  27. ↑ "Jaseci Digest: biweekly newsletter for the Jaseci & Jac ecosystem". Jaseci Labs. Retrieved 29 September 2026.
  28. ↑ "Jaseci (@Jac-Jaseci): Jac Tutorials". YouTube. Jaseci Labs. Retrieved 29 September 2026.
  29. ↑ Mars, Jason (10 July 2024). How Jac Language Supersets Python. Retrieved 29 September 2026 – via YouTube.
  30. ↑ Agentic AI with Jac: A Programming Language That Knows What an Agent Is. JayD Explains. 19 June 2026. Retrieved 29 September 2026 – via YouTube.
  31. ↑ "JacHammer: Build, deploy, and iterate Jac apps in your browser". Jaseci Labs. Retrieved 29 September 2026.
  32. 1 2 "JacHacks: the hackathon series powering the future of AI programming". Jaseci Labs. Retrieved 29 September 2026.
  33. ↑ "We Threw 1,000 Hackers at Jac. Here's What Broke and What Stuck". Jaseci Blogs. Jaseci Labs. 27 August 2026. Retrieved 29 September 2026.
  34. 1 2 3 "SIGIL: a skill compiler". Retrieved 29 September 2026.
  35. ↑ "BCS Technology and Jaseci Labs commence pioneering journey to setup Sri Lanka's first Centre of AI and Incubation Lab". Lanka Business News. 2 January 2024. Retrieved 29 September 2026.
  36. ↑ "EECon 2024: Speakers". Department of Electrical Engineering, University of Moratuwa. Retrieved 29 September 2026.
  37. ↑ "Students build agentic AI tools for work, travel, wellness". Computer Science and Engineering. University of Michigan. 18 June 2026. Retrieved 29 September 2026.
  38. ↑ Greene, Faith (16 November 2023). "Guyanese firms to unveil AI innovations at AI-4D showcase". Guyana Chronicle. Retrieved 29 September 2026.
  39. ↑ Kashmira, Savini; Dantanarayana, Jayanaka L.; Brodsky, Joshua; Mahendra, Ashish; Kang, Yiping; Flautner, Krisztian; Tang, Lingjia; Mars, Jason (6 December 2024). "TOBUGraph: Knowledge Graph-Based Retrieval for Enhanced LLM Performance Beyond RAG". arXiv:2412.05447 [cs.CL].
  40. ↑ Kashmira, Savini; Dantanarayana, Jayanaka; Sathiyalogeswaran, Thamirawaran; Flautner, Krisztian; Tang, Lingjia; Mars, Jason (17 September 2025). "GraphMend: Code Transformations for Fixing Graph Breaks in PyTorch 2". arXiv:2509.16248 [cs.PL].
[edit]

Category:AI software Category:Cross-platform software Category:High-level programming languages Category:Multi-paradigm programming languages Category:Programming languages Category:Programming languages created in 2021 Category:Python (programming language) Category:Software using the MIT license Category:University of Michigan