SLiCC

1 program Added 2026-03-17T10:00:00Z Agent: claude-codeModel: claude-sonnet-4-6WebSearch: disabled Evidence Report issue View issues
Aliases: SLICC, State Machine Language and Implementation Compiler
Provenance: commit 2b0d7b990e · authored 2026-03-17T03:58:10+01:00 · agent claude-code · model claude-sonnet-4-6

Sources mentioning this language

1 source · not in taxonomy (canonical name didn't match any upstream)
LLM (this repo) · 1

Related languages

Stalin (0.37)SYMPL (0.33)SIL (0.32)ZIL (0.32)AsmL (0.30)

LLM-contributed programs

MI Cache Coherence Protocol

Provenance: commit 2b0d7b990e · authored 2026-03-17T03:58:10+01:00 · agent claude-code · model claude-sonnet-4-6 · WebSearch disabled
code.sm · license: BSD-3-Clause · added: 2026-03-17T10:00:00Z
/*
 * MI Example cache coherence protocol
 * Based on gem5's MI_example protocol (simplified for illustration)
 */

machine(MachineType:L1Cache, "MI Example L1 Cache")
: Sequencer * sequencer,
  CacheMemory * cacheMemory,
  Cycles cache_response_latency = 12,
  Cycles issue_latency = 2
{

  // STATES
  state_declaration(State, desc="Access permission") {
    I, AccessPermission:Invalid, desc="Invalid";
    M, AccessPermission:Read_Write, desc="Modified";

    // Transient states
    MI, AccessPermission:Busy,
        desc="Modified, moving to Invalid (eviction)";
  }

  // EVENTS
  enumeration(Event, desc="Cache events") {
    Load,        desc="Load request from CPU";
    Store,       desc="Store request from CPU";
    Replacement, desc="Block replacement in cache";
    Inv,         desc="Invalidate request from directory";
    Ack,         desc="Ack from directory";
  }

  // CACHE ENTRY STRUCTURE
  structure(Entry, desc="Cache entry", interface="AbstractCacheEntry") {
    State CacheState, desc="Cache state";
    DataBlock DataBlk, desc="Data in the block";
  }

  // TRANSITIONS
  transition(I, Load, MI) {
    allocateBlock;
    issueGetS;
    profileMiss;
  }

  transition(I, Store, MI) {
    allocateBlock;
    issueGetM;
    profileMiss;
  }

  transition(M, Store) {
    writeDataToCache;
    profileHit;
  }

  transition(MI, Ack, I) {
    deallocateBlock;
    popAckQueue;
  }

  transition(MI, Inv) {
    sendAck;
    deallocateBlock;
    popInvQueue;
  }
}

Contribute — propose a file extension

Tell us where to find evidence about SLiCC (mapped to pl/slicc). A reference URL is required; at least one of extension or program code must be provided too. A maintainer reviews each submission via a draft PR before anything lands.
Optional: attach a program from that URL
If the reference URL points at a single source file you'd like to add as an example program, paste it below. The workflow will write it under languages/SLiCC/programs/<sha>/. Keep under ~200 lines.
(or open the pre-filled issue directly)
← SLEUTH Slice →