codeenlightener
Joined 5 years ago
Joined 5 years ago
On a related note, I'm working on https://denigma.app, which is an AI that tries to explain code, giving a second opinion on what it looks like it does. One company said they found it useful for code review. Maybe just seeing how clear an AI explanation is is a decent metric of code quality.
The hardware requirements (GPU) might be hefty. I'll try to see if I can optimize the size of the model to something smaller.
It is designed for explaining real-world code in context, and performs poorly on esoteric examples.
Denigma is a product that has been around for a while.
Denigma goes beyond a literal line by line explanation, and explains of programming concepts and deduces the business logic and goal of code.
I'm excited to see innovation in the field.
Here's a sample explanation from Denigma:
The code starts by initializing the trampoline. Then it checks to see if there is a passed_info structure in memory, and if so, copies the struct into the passed_info variable. Next, it sets up some variables for use later on:
- info_struct - The smp_information struct that will be used throughout this function
- longmode - Indicates whether or not we are running in 64 bit mode
- lv5 - Indicates whether or not we are running with L1V5 support enabled (if you're unsure what this means google "Intel VT-x" and "L1D cache")
- pagemap - The address of our page table entry array (this is where all of our virtual addresses go)
- x2apic - Indicates whether or not we are using an Intel X2APIC controller
The code is a function that is called when the kernel is booted. The function checks to see if the kernel was booted in long mode or not, and if it was, it sets up a trampoline to call the original kernel.
We're small, privacy-focused, and bootstrapped, and don't have the marketing budget of GitHub, so we'd appreciate you talking about Denigma in your communities.
Can you explain what you mean by text layout? Do you want it justified? Formatted differently?
> What I think I would really, really want, is integration with VSCode/Sublime/etc. where the interpretations were interleaved within the actual source code and could be folded down. I would like to be able to correlate the source codes lines to the interpretations.
Cool idea. Something like Literate Programming, where the explanations are stored in the code file? Or more like a dynamic tool that just shows dynamically generated explanations inline?