SStackSundial
AI-werkruimte voor code

Begrensde postfixrekenkunde

Evalueer één tot 100 postfixtokens met begrensde gehele getallen en de operatoren +, -, * en //.

● ● ●StackSundial●
Werkprocessen · Begrensde postfixrekenkunde ×
def postfix_value(tokens):
    tokens = tuple(tokens)
    if not 1 <= len(tokens) <= 100:
        raise ValueError("tokens.limit")
    stack = []
    for token in tokens:
        if type(token) is int and abs(token) <= 1000000000:
            stack.append(token)
            continue
        if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
            raise ValueError("token.invalid")
        right, left = stack.pop(), stack.pop()
        if token == "//" and right == 0:
            raise ValueError("division.zero")
        value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
        if abs(value) > 10**18:
            raise ValueError("result.range")
        stack.append(value)
    if len(stack) != 1:
        raise ValueError("stack.remainder")
    return stack[0]
✳Evalueer één tot 100 postfixtokens met begrensde gehele getallen en de operatoren +, -, * en //.
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Project
Test negatieve deling met afronding naar beneden, en weiger deling door nul, een onvolledige stapel of tussenwaarden met absolute waarde boven 10**18.
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Werkprocessen

Begrensde postfixrekenkunde

Werkprocessen ↗
Werkprocessen
def postfix_value(tokens):
    tokens = tuple(tokens)
    if not 1 <= len(tokens) <= 100:
        raise ValueError("tokens.limit")
    stack = []
    for token in tokens:
        if type(token) is int and abs(token) <= 1000000000:
            stack.append(token)
            continue
        if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
            raise ValueError("token.invalid")
        right, left = stack.pop(), stack.pop()
        if token == "//" and right == 0:
            raise ValueError("division.zero")
        value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
        if abs(value) > 10**18:
            raise ValueError("result.range")
        stack.append(value)
    if len(stack) != 1:
        raise ValueError("stack.remainder")
    return stack[0]
AI-werkruimte voor code

Bepaal wat een expressie mag doen voordat u de parser wijzigt

Expressieverwerking heeft duidelijke grenzen nodig, ook wanneer de taal klein is. StackSundial is een Windows-programmeerwerkruimte met AI om die grenzen naast de bronbestanden te bespreken. Open uw project en laat het verbonden model toegestane tokens, evaluatieregels en foutafhandeling van de aanroepende code inspecteren voordat het een implementatiewijziging voorstelt.

Een mogelijke taak is het beoordelen van een postfix-evaluator voor een intern rekenscherm. Specificeer toegestane operatoren, numerieke limieten en de reactie op onjuist gevormde expressies. Laat de assistent aanwijzen waar die vereisten worden afgedwongen en gerichte wijzigingen voorstellen waar ze ontbreken. Zo draait het gesprek om softwareonderhoud in plaats van alleen nog een evaluator te genereren.

Beoordeel afwijzingspaden met dezelfde aandacht als geslaagde berekeningen. Voer projectcontroles uit voor ontbrekende operanden, overtollige resultaten, deling door nul en waarden buiten de toegestane grenzen. Inspecteer de operandvolgorde bij niet-commutatieve bewerkingen en bevestig dat de aanroepende code de bedoelde fout ontvangt. Aanvaard geen kortere evaluatielus als die het omliggende contract verzwakt.

StackSundial ondersteunt verbindingen met OpenAI-compatibele of Anthropic-eindpunten. Kies waar beschikbaar een abliterated AI-model, met het besef dat beperkingen, contextlimieten en hulpmiddelen afhankelijk zijn van de geselecteerde dienst. De voorgestelde code blijft een uitgangspunt voor inspectie en uw eigen verificatie, geen bewijs dat de interpreter klaar is.

Voordat u een evaluatorwijziging aanvaardt

Welke regels moet ik in de taakbeschrijving opnemen?

Vermeld toegestane tokens, operandtypen, numerieke grenzen en foutgedrag. Betrek de aanroepende code die fouten aan gebruikers toont erbij. Zonder die regels kan een voorstel gewone voorbeelden correct berekenen en toch expressies accepteren die de toepassing moest afwijzen.

Waarom aftrekken en delen expliciet testen?

Hun resultaten hangen af van de operandvolgorde, anders dan optellen in gewone gevallen. Gebruik testgevallen met duidelijk verschillende uitkomsten bij verwisselde operanden. Controleer zowel de vereiste delingsconventie als de reactie op een deler gelijk aan nul.

Moeten onjuist gevormde expressies nul teruggeven?

Alleen als dat een expliciete toepassingsvereiste is. Een aannemelijke numerieke terugvalwaarde kan ongeldige invoer verbergen. Vraag de assistent een duidelijk afwijzingspad te behouden en inspecteer hoe de aanroepende code een geldig nulresultaat van een fout onderscheidt.

Kan alleen een tokenlimiet de evaluatie begrenzen?

Beoordeel alle limieten die het project vereist, inclusief tussenwaarden en toegestane invoerstructuur. Een tokenaantal beantwoordt slechts één deel van dat contract. Test de relevante afwijzingspaden na elke wijziging in de evaluatielus.

Download voor Windows ↗

StackSundial · Bijgewerkt 2026-10-25