5

Denigma for Developers - AI that reads and explains code in conversational Engli...

 2 years ago
source link: https://denigma.app/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
AI that reads and explains code in conversational English Understand unfamiliar programming constructs-->

AI that reads and explains complex code naturally, like a human

Denigma explains code in conversational English.
Powered by machine learning.

Sample explanations

void I2C_Reset(void)
{
    // Release SCL and SDA lines and re-enable module
    //
    TWCR = 0;
    SetBit(TWCR, TWEA);
    SetBit(TWCR, TWEN);
}

Show explanation

  • The function is called "I2C_Reset" which means it resets the I2C bus.
  • The first line of code sets the value of a register to zero.
  • This register is named "TWCR".
  • It's important to note that this register has two bits: one for setting the clock rate (TWEA), and one for enabling/disabling the module (TWEEN).
  • After these two lines are executed, both bits will be set to zero.
  • The code sets the TWCR register to 0, which disables the module.
  • The code then releases the SCL and SDA lines of the I2C bus, re-enabling it.

We stress-tested it on the worst, most obscure code we could find.
That's why we're confident it will work on your complex codebase.

Let AI do the hard work of reading code to save time and accelerate development

Tips for best explanations

  • Crop code to help Denigma focus on the important parts. Sometimes, less code can lead to a better explanation.
  • Rename misleading variable names or replace them with "foo" or "bar".
  • Remove superfluous comments.
Explain any source code

Line-by-line mode

Explanation Powered by Denigma AI

Private. Your code is not stored or logged

We do not claim copyright over explanations

Works in less than 2 seconds, saving you time.

Accurate

95% accuracy on many types of code, and 75% on unrecognized code.

Independent

Unaffiliated with large tech companies. 100% bootstrapped.

Integrated

Seamless integration with your editor. VS Code add-on. More planned.

How does Denigma help?

Provides Crucial
Conceptual Context

Navigate confidently in unfamiliar territory

  • static bool smp_start_ap(uint32_t lapic_id, struct gdtr *gdtr,
  •                          bool longmode, bool lv5, uint32_t pagemap,
  •                          bool x2apic) {
  •     size_t trampoline_size = (size_t)_binary_smp_trampoline_bin_end
  •                            - (size_t)_binary_smp_trampoline_bin_start;
  •     // Prepare the trampoline
  •     static void *trampoline = NULL;
  •     if (trampoline == NULL) {
  •         trampoline = conv_mem_alloc(trampoline_size);
  •         memcpy(trampoline, _binary_smp_trampoline_bin_start, trampoline_size);
  •     }
  •     static struct trampoline_passed_info *passed_info = NULL;
  •     if (passed_info == NULL) {
  •         passed_info = (void *)(((uintptr_t)trampoline + trampoline_size)
  •                                - sizeof(struct trampoline_passed_info));
  •     }
  •     passed_info->smp_tpl_info_struct = (uint32_t)(uintptr_t)info_struct;
  •     passed_info->smp_tpl_booted_flag = 0;
  •     passed_info->smp_tpl_pagemap     = pagemap;
  •     passed_info->smp_tpl_target_mode = ((uint32_t)x2apic << 2)
  •             | ((uint32_t)lv5 << 1)
  •     passed_info->smp_tpl_gdt  
  •     asm volatile ("" ::: "memory");
  •     // Send the INIT IPI
  •     if (x2apic) { x2apic_write(LAPIC_REG_ICR0, ((uint64_t)lapic_id << 32) | 0x4500);
  •     } else {
  •         lapic_write(LAPIC_REG_ICR1, lapic_id << 24);
  •         lapic_write(LAPIC_REG_ICR0, 0x4500);
  •     }
  •     delay(5000);
  • void AttackSystem::update(core::World &world, core::Time &time)
  •     {
  •         auto attackers = world.entities().view<:position>();,>
  •         attackers.each([&](entt::entity attacker, base::Position &attacker_position, game::Attack &attacker_attack) {
  •             attacker_attack.cooldown -= time.elapsed();
  •             int damages = attacker_attack.base_damages + world.getDifficulty();
  •             auto victims = world.entities().view<:position>();,>
  •             if (attacker_attack.attacking && attacker_attack.cooldown < 0)
  •             {
  •                 victims.each([&](entt::entity victim, base::Position &victim_position, game::Health &victim_health, base::Sprite &victim_sprite) {
  •                     if (attacker == victim)
  •                     {
  •                         return;
  •                     }
  •                     if (attacker_position().distance_to(victim_position()) <= attacker_attack.range * core::Tile::SIZE)
  •                     {
  •                         attacker_attack.cooldown = 0.8;
  •                         victim_sprite.flash = 0.1;
  •                         victim_health.current -= damages;
  •                         if (world.entities().has<:player>(victim))
  •                         {
  •                             auto &player = world.entities().get<:player>(victim);
  •                             auto &camera = world.players()[player.player_index].camera();
  •                             camera.trauma(0.1);
  •                         }
  •                     }
  •                 });
  •             }
  •             attacker_attack.attacking = false;
  •         });
  •     }

Focus on what's important

Understand business logic at a high-level

How Denigma can
benefit you

Fix bugs faster

Rapidly and automatically drill down into bugs for a deeper technical understanding. Navigate your code faster than ever before.

Dive deep into third-party libraries

Use the source, Luke! Fearlessly understand open-source libraries.

Rapidly understand unfamiliar codebases

New developers can onboard faster, with less assistance from developers already on the project.

Gain insight into legacy code

Understand what you didn't know you didn't know. Denigma puts old code in a new light.

Join the waitlist for full access

Our Roadmap

Illustrating the work we have completed so far and where the team hopes to take the project in the near future.

Amazing at Explaining Code That Uses

95% accuracy on many types of code, and 75% on unrecognized code

Mainstream Programming Languages

Web and UI Frameworks like React, Vue, Svelte, etc.

Complex Code

Good at Explaining Code That Uses:

Up to 75% accuracy. We're improving this.

Third-Party Libraries

Conceptual explanations

Niche languages

Domain-Specific Languages

Identifying goal/purpose (second half of the output)

In the works

Languages like Assembly, Haskell, Lisp, APL, and CSS

Complex Mathematics

Everyone loves Denigma!

Our product has been tried and tested by developers of all skill levels and programming expertise.

“Ok this is epic”

sleepy-monax

Kernel Developer

“this is absolutely incredible it explained how the code works more clearly than I was able to explain it to my wife"

Scott Hansen

Windows System Administrator and Hobbyist Game Developer

“When I wrote this code, only God and I understood what I was doing. Now, only Denigma knows.”

mintsuki

Software Developer

Denigma

The fast and easy way to understand other people's code.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK