
Eleva loops binários x86-64 para restrições SMT de forma fechada via análise de intervalos com stride, permitindo execução simbólica O(1) e recuperação de chaves de crackme.
Motor de Elevação Algébrica de Loops de Alto Desempenho e Recorrência Racional Exata para Python e C
Compiladores, runtimes e motores JIT tradicionais (como GCC, Clang, PyPy ou Numba) tratam loops como sequências repetitivas de fluxo de controle, executando instruções passo a passo:
$$ \text{Custo de Execução} = \mathcal{O}(N) $$
Quando $N = 10^6$ ou $10^9$, a execução sequencial incorre em bilhões de ciclos de CPU. O Strilight reengenheira fundamentalmente a execução de loops por meio da Elevação Algébrica Simbólica:
$$ \vec{\mathbf{X}}(N) = \mathbf{A}^N \cdot \vec{\mathbf{X}}0 + \sum{k=0}^{N-1} \mathbf{A}^{N-1-k} \vec{\mathbf{B}} $$
O Strilight não pretende introduzir magia esotérica; ele é fundamentalmente uma ferramenta de qualidade de vida para o desenvolvedor.
Em modelagem física, computação científica e simulação numérica, engenheiros frequentemente enfrentam um dilema frustrante:
O Strilight resolve esse dilema. Você escreve o conceito físico ou matemático em qualquer sintaxe direta e natural que preferir. O Strilight inspeciona a estrutura do seu loop, deriva as fórmulas de recorrência exatas em forma fechada e acelera a execução nos bastidores—preservando completa legibilidade e simplicidade na sua base de código.
A aritmética de ponto flutuante introduz erros cumulativos de truncamento ($1/3 \times 3 \approx 0.9999999999999999$). O Strilight realiza indução afim e análise de passos sobre o corpo dos números racionais $\mathbb{Q}$:
Fraction em Python, garantindo 100% de paridade matemática bit a bit.Variáveis que dependem mutuamente umas das outras (por exemplo, simulações físicas onde a posição depende da velocidade e a velocidade depende da aceleração) são automaticamente extraídas para uma Matriz de Acoplamento de Variáveis ($\mathbf{A}$). O Strilight realiza exponenciação binária sobre $\mathbf{A}$, executando milhões de iterações em menos de 2 nanossegundos.
@accelerate (Como funciona)Decorar qualquer função Python padrão com @accelerate executa um pipeline automatizado no momento da definição da função (zero sobrecarga de análise em tempo de execução por chamada):
for e extrai variáveis de indução.Fraction, math) sem poluir os namespaces do módulo._loop_summary e _invariant_contract ao objeto de função compilado, permitindo que compiladores e ferramentas de verificação downstream inspecionem a matriz de transição subjacente $\mathbf{A}$.from strilight import accelerate
@accelerate
def compute_simulation(steps: int) -> int:
acc = 0
for i in range(steps):
acc += (i * 3) + 7
return acc
# Executes in O(1) time (~0.001 ms even if steps = 100,000,000)
result = compute_simulation(100_000_000)
#pragma strilight)Ao contrário da reflexão dinâmica do Python, as transformações de código C no Strilight seguem estritamente um Modelo de Contrato do Desenvolvedor explícito por meio de diretivas pragma no estilo OpenMP. O motor nunca modifica implicitamente o código-fonte C; as transformações ocorrem somente quando direcionadas por cláusulas de contrato explícitas do desenvolvedor (contract, target, include, model):
#pragma strilight accelerate: Autoriza explicitamente o Strilight a elevar o laço for em C anotado para uma expressão matemática de forma fechada equivalente.#pragma strilight fuse: Diretiva explícita do desenvolvedor instruindo o Strilight a fundir laços adjacentes designados que compartilham domínios de iteração idênticos em um kernel de recorrência de matriz binária unificado $\mathcal{O}(\log N)$.// Example of contract-guided multi-loop fusion via developer directive
int simulate_motion(int n) {
int pos = 0, vel = 10;
#pragma strilight fuse
for (int i = 0; i < n; i++) {
pos += vel;
}
for (int i = 0; i < n; i++) {
vel += 2;
}
return pos;
}
CrossFileResolver)Simulações numéricas frequentemente definem parâmetros em arquivos de cabeçalho separados ou módulos de configuração. O CrossFileResolver do Strilight:
#include / #define.SOLAR_MASS = 4 * PI * PI) entre arquivos via avaliação de AST sem executar código de runtime arbitrário ou usar eval inseguro.table[i % P]) a fórmulas fechadas de soma de prefixos pré-computadas em $\mathcal{O}(1)$.memset ou atribuições de fatias vetoriais (arr[:N] = ...).