Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Tool gesucht: C++ in C übersetzen

Tool gesucht: C++ in C übersetzen

andreas_g
andreas_g29.01.2513:41
Liebe Community,

ich bin auf der Suche nach einem Tool, mit dem ich in C++ geschriebenen Code nach C übersetzen kann.

Das Resultat muss stilistisch nicht perfekt sein. Ich bin durchaus bereit, das Ergebnis noch nachzuarbeiten. Allerdings sollte der resultierende Code für jemanden lesbar sein, der kein C++ beherrscht.

Es scheint diverse kostenpflichte KI-basierte Tools zu geben. Da mein Projekt aber ein nicht-kommerzielles Open-Source-Programm ist, würde ich nur ungern größere Geldsummen investieren.

Hat jemand einen guten Tipp?
+1

Kommentare

gfhfkgfhfk29.01.2513:50
Lerne C++ oder schreibe den Code neu. Alles andere ist mehr oder minder sinnlos.
+6
andreas_g
andreas_g29.01.2514:30
Zur Erklärung:
Der vorliegende Code enthält zahlreiche in C++ geschriebene Routinen, die voll funktionsfähig sind, hat aber größere strukturelle Probleme. Weil die strukturellen Probleme ohne tiefgreifende C++-Kenntnisse nicht behebbar sind, soll der Code nun in C sauber neu geschrieben werden, wobei die funktionierenden Routinen erhalten bleiben sollen. Zum Übersetzen dieser Routinen in C würde ich ein Helfer-Tool benötigen.
+1
Wauzeschnuff29.01.2515:03
Ganz ehrlich: Ich würde keinem Tool (auch keinem KI-basierten) zutrauen semantisch gleichwertigen C-Code aus einem komplexen C++ Projekt (was ich annehme, da Du "tiefgreifende C++ Kenntnisse" erwähnst) zu erzeugen. Auch wenn C und C++ oft in einem Atemzug erwähnt werden, sind das spätestens seit C++11 doch völlig verschiedene Sprachen.

Meines Erachtens wirst Du (oder ein von Dir avisierter Entwickler) entweder in den sauren Apfel beißen müssen und C++ (im jeweiligen Dialekt) zu erlernen oder aber versuchen den Code an den Routinen die Du erhalten willst sauber zu trennen (aka eine API zu erzeugen) und dann den "Glue-Code" in C neu zu schreiben. Zum Glück können C++ Compiler ja oft auch C-Code übersetzen.
+8
DasFaultier29.01.2515:04
Ich würde schrittweise mit ChatGPT und dem Modell o1 anfangen. Das kann schon viel - 23€ finde ich dafür einen fairen Preis. Die Zeit musst du so oder so investieren.
0
Nebula
Nebula29.01.2515:12
Ist denn C++ überhaupt so einfach auf C rückportierbar? Arbeiten die Routinen mit Klassen, Objekten, Vererbungen? Wird die Standardbibliothek benutzt? Vermutlich ist es einfacher, C++ zu lernen, als die Funktionalitäten und modernen Features von C++ alle nachzuprogrammieren. Das dürfte auch mit Tools nicht gut klappen. Und wozu etwas neu implementieren, was es schon gibt? KI kann sicher helfen, da sie Code aber nicht wirklich verstehen kann, dürfte bei größeren Projekten viel Nacharbeit nötig sein. Dazu müsste man den alte Code schon verstehen. Früher gab's mal mit cfront ein Übersetzungstool, das dürfte an modernem Code aber wohl scheitern. Einen Monat ein KI-Tool zu testen, dürfte doch bezahlbar sein. Kollegen schwören auf Anthropic Claude als Ergänzung zu Copilot in VS Code.
„»Wir waren schon immer schamlos darin, großartige Ideen zu stehlen.« – Steve Jobs“
+8
gfhfkgfhfk29.01.2517:30
andreas_g
Zur Erklärung:
Der vorliegende Code enthält zahlreiche in C++ geschriebene Routinen, die voll funktionsfähig sind, hat aber größere strukturelle Probleme.
Das Problem am existierenden Code ist, dass er viel zu sehr C artig ist, und daher wild Zeiger herumreicht ohne dessen Ownership sauber zu handhaben, daher kommen die Probleme. C bietet Dir keinerlei Möglichkeit das besser umzusetzen, und wirst Du dann weiterhin rohe Zeiger herumreichen, ohne zu wissen was wirklich passiert.

Dann wird an einigen Stellen STL Code und eine Template Klasse (84k Sourcecode !!!) mit einer Baumstruktur genutzt. Das portierst Du nicht in absehbarer Zeit auf C.
+3
Schens
Schens29.01.2518:32
Lass das Ding durch ChatGPT laufen und schau, was passiert...

-1
Schens
Schens29.01.2518:39
Interessant! Jetzt auch mit Debugging im ChatGPT.




#include "nfsd.h"
#include "NetInfoBindProg.h"
#include "UFS.h"
#include "configuration.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>

#define NAME_HOST_MAX 256

extern void add_rpc_program(void *pRPCProg, uint16_t port);

typedef struct {
    char *key;
    char *value;
} NIProps;

static char* ip_addr_str(uint32_t addr, size_t count) {
    static char buffer[16];
    switch(count) {
        case 3:
            snprintf(buffer, sizeof(buffer), "%u.%u.%u",
                     (addr >> 24) & 0xFF,
                     (addr >> 16) & 0xFF,
                     (addr >> 8) & 0xFF);
            break;
        case 4:
            snprintf(buffer, sizeof(buffer), "%u.%u.%u.%u",
                     (addr >> 24) & 0xFF,
                     (addr >> 16) & 0xFF,
                     (addr >> 8) & 0xFF,
                     addr & 0xFF);
            break;
    }
    return buffer;
}

void addHost(void *host, const char *name, const char *systemType) {
    add_rpc_program(host, 0);
    // Implement doRegister function accordingly
    // doRegister(host->mTag, host->getPortUDP(), host->getPortTCP());
    
    // Example of adding trusted networks
    // host->mRoot.add("trusted_networks", ip_addr_str(CTL_NET, 3));
    
    char master[256];
    snprintf(master, sizeof(master), "%s/local", name);
    
    // Additional configurations as in the C++ code
}

void configure(int ntp) {
    // Placeholder for configuration logic
    const char *domain = (NAME_DOMAIN[0] == '.') ? &NAME_DOMAIN[1] : &NAME_DOMAIN[0];
    
    // Example of setting up locations in the network
    // locations->add(NIProps("name","resolver")("nameserver",ip_addr_str(CTL_NET|CTL_DNS, 4))("domain",domain)("search",domain));
    
    if (ntp) {
        // Example of adding NTP configuration
        // locations->add(NIProps("name","ntp")("server",NAME_NFSD)("host",NAME_NFSD));
    }
}

void doRegister(const char* tag, uint32_t udpPort, uint32_t tcpPort) {
    // Placeholder implementation for registering
    printf("%s tcp:%d udp:%d\n", tag, tcpPort, udpPort);
}

int procedureREGISTER() {
    return -1; // PRC_NOTIMP equivalent
}

int procedureUNREGISTER() {
    return -1;
}

int procedureGETREGISTER() {
    // Placeholder for get register logic
    return 0; // PRC_OK equivalent
}

int procedureLISTREG() {
    return -1;
}

int procedureCREATEMASTER() {
    return -1;
}

int procedureCREATECLONE() {
    return -1;
}

int procedureDESTROYDOMAIN() {
    return -1;
}

int procedureBIND() {
    uint32_t clientAddr;
    char clientTag[NAME_HOST_MAX];
    char serverTag[NAME_HOST_MAX];
    
    // Placeholder for binding logic
    
    return 0;
}
-1
andreas_g
andreas_g29.01.2519:14
Ich habe diese Seite ausprobiert:

Um isolierte Funktionen zu übersetzen, scheint es ganz gut zu funktionieren. Das große Ganze kann ich aber dort nicht zur Übersetzung einspeisen.
-1
Schens
Schens30.01.2508:06
Nebula
Ist denn C++ überhaupt so einfach auf C rückportierbar? Arbeiten die Routinen mit Klassen, Objekten, Vererbungen?

ChatGPT listet nach der Konversion auf, was alles geändert wurde. "Die Bibliothek gibt es nicht, darum habe ich jene genommen...." usw.
0
Danger30.01.2509:50
Vielleicht bin ich ja naiv, aber wie soll denn das funktionieren? C ist eine prozedurale Programmiersprache und C++ eine objektorientierte.

So eine automatische Übersetzung klappt bestimmt bei einem Trivialprogramm wie "Hello World", aber nicht bei einem Projekt, das objektorientierte Prinzipien nutzt. Da müsste die KI Kenntnisse über die Architektur des Projekts haben, um das Ding dann in C neu zu schreiben. Ich will nicht sagen, dass es auf keinen Fall geht, aber das ist keine einfache Sache, die man so schnell nebenbei macht.
+6
Nebula
Nebula30.01.2510:34
KI kann übrigens auch gut beim Lernen von C++ helfen. Man füttert es mit Codeschnipseln und bittet um eine Erklärung. Vorher noch sagen, welchen Background man hat.
„»Wir waren schon immer schamlos darin, großartige Ideen zu stehlen.« – Steve Jobs“
+2
Schens
Schens30.01.2511:09
Danger
Vielleicht bin ich ja naiv, aber wie soll denn das funktionieren? C ist eine prozedurale Programmiersprache und C++ eine objektorientierte.

So eine automatische Übersetzung klappt bestimmt bei einem Trivialprogramm wie "Hello World", aber nicht bei einem Projekt, das objektorientierte Prinzipien nutzt. Da müsste die KI Kenntnisse über die Architektur des Projekts haben, um das Ding dann in C neu zu schreiben. Ich will nicht sagen, dass es auf keinen Fall geht, aber das ist keine einfache Sache, die man so schnell nebenbei macht.

Ich habe keine Dunst. Habe mit 2020 etwas Python zur Erstellung von Screenscrapern mit Selenium angeeignet. Dann habe ich alle Screenscraper in ein Programm genagelt und das funktionierte nicht. Januar 2023 kopierte ich dann das Programm in ChatGPT. ca. 600 Zeilen. Nach 90s wusste ich, was der Fehler war, der wurde dann automatisch korrigiert und das Ding lief.

In so fern: muss man halt probieren. Mehr als "geht ned" kann ja nicht passieren.
0
Nebula
Nebula30.01.2511:17
Schens
Mehr als "geht ned" kann ja nicht passieren.
Kommt auf den Code an. Wenn er vertraulich ist oder vertrauliche Daten enthält, kann schon mehr passieren. Dürfte aber hier nicht relevant sein.
„»Wir waren schon immer schamlos darin, großartige Ideen zu stehlen.« – Steve Jobs“
+1
LoCal
LoCal30.01.2511:41
andreas_g
Liebe Community,

ich bin auf der Suche nach einem Tool, mit dem ich in C++ geschriebenen Code nach C übersetzen kann.

Das Resultat muss stilistisch nicht perfekt sein. Ich bin durchaus bereit, das Ergebnis noch nachzuarbeiten. Allerdings sollte der resultierende Code für jemanden lesbar sein, der kein C++ beherrscht.

Es scheint diverse kostenpflichte KI-basierte Tools zu geben. Da mein Projekt aber ein nicht-kommerzielles Open-Source-Programm ist, würde ich nur ungern größere Geldsummen investieren.

Hat jemand einen guten Tipp?

Ich habe leider keinen Tipp, ausser dass ich KIs bei solch komplexen Dingen noch nichts zutraue*

Aber ich fände es generell gut, wenn Du in deinen Post etwas konkreter bist worum es sich gerade dreht.
Also ich nehme ja an, dass es sich um deine Arbeit an Previous dreht( da habe ich übrigens großen Respekt vor Dir und finde, dass Du das ruhig erwähnen solltest). Aber wenn Du da für bestimmte Frameworks ersetzen willst, dann wäre es hilfreich,diese zu nennen, denn vielleicht kennt hier jemand ja eine alternative, die nicht so bekannt ist, aber genau das tut was Du brauchst.
„Ich hab zwar keine Lösung, doch ich bewundere dein Problem“
+2
ThorsProvoni
ThorsProvoni30.01.2511:51
Wenn es nur einzelne Routinen sind, die nichts aus der C++ Standardbibliothek und objektorientierte Features verwenden - kann man ja mal versuchen. Falls Du einen gut ausgestatteten Mac mit Apple Silicon hast, kannst Du Dir selber ein LLM installieren (mit Ollama) und als UI z.B. AnythingLLM.

Folgende Modelle sind zum coden gut geeignet:
  • qwen2.5-coder:32b
  • deepseek-coder-v2:latest
  • phi4:latest

Wenn es komplexer wird versuche ich es auch manchmal mit deepseek-r1:32b.
Du kannst mir auch 2-3 Routinen schicken, dann jage ich die mal durch die Modelle und Du kannst anhand des Ergebnis entscheiden, ob sich der (relativ geringe) Aufwand lohnt.

Ansonsten die bereits genannten (CodeConvert, Claude, ChatGPT).
+1
Raziel130.01.2512:11
LoCal

Ich habe leider keinen Tipp, ausser dass ich KIs bei solch komplexen Dingen noch nichts zutraue*

Also dann hast du die letzten 2-3 Jahre verpasst. Solche Aufgaben sind eine geringe Herausforderung für reguläre LLMs wie GPT. Man muss nur sagen was man will. Und mit Models die Reasoning beherrschen wie O1 von OpenAI hast du auch menschliche Denkansätze mit Schritt für Schritt Überlegungen und gegenprüfung etc
-4
LoCal
LoCal30.01.2512:55
Raziel1
LoCal

Ich habe leider keinen Tipp, ausser dass ich KIs bei solch komplexen Dingen noch nichts zutraue*

Also dann hast du die letzten 2-3 Jahre verpasst. Solche Aufgaben sind eine geringe Herausforderung für reguläre LLMs wie GPT. Man muss nur sagen was man will. Und mit Models die Reasoning beherrschen wie O1 von OpenAI hast du auch menschliche Denkansätze mit Schritt für Schritt Überlegungen und gegenprüfung etc

Na dann sind das hier bestimmt nur Fake-News

Und ich habe die Anmerkung, also das was zum * gehört, vergessen, dann jetzt hier:
_____
In unregelmäßigen mache ich mir den Spaß und werfe den Code von alten SGI - Programmen in ChatGPT und bitte um eine Konvertierung nach z.B. Swift.
Das Ergebnis ist immer sehr ernüchternd … der Code sieht auf den ersten Blick funktionabel aus, ist er aber nicht und manchmal sind da auch einfach leere Funktionen, die ChatGPT die halluziniert.
Und das sind keine großen Dinger, es sind kleine Projekte, die auch nicht hardwarenahes ansprechen.
_____

Oder auch das:
Ich hatte vor kurzem ein Problem in SwiftUI und mir fiel wirklich keine Lösung mehr ein, also das Problem isoliert an ChatGPT gestellt. Ich habe mir sehr viel Mühe gegeben um das Problem möglichst genau zu beschreiben.

1. Antwort von ChatGPT:
Analyse: richtig.
Kurzbeschreibung des Lösungsansatzes: richtig
Beschreibung des eigentlichen Codes: richtig (in form von, dass er tun würde worum ich gebeten hatte)

Code: komplett falsch und anders als die Beschreibung

Also die KI auf die Fehler hingewiesen:

2. Antwort
Entschuldiung, verständnis "häucheln"
Analyse: richtig.
Kurzbeschreibung des Lösungsansatzes: richtig
Beschreibung des eigentlichen Codes: richtig (in form von, dass er tun würde worum ich gebeten hatte)

Code: komplett falsch und anders als die Beschreibung

Die Schleife "Also die KI auf die Fehler hingewiesen" und "Antwort der KI" bin ich dann noch 3x gefahren und habe dabei noch Hilfestellungen gegeben.

Die AI-Lösungen war dann aber auch immer weiter ab von dem, was ich wollte … letztendlich kam dabei aber etwas heraus, was zwar immer noch nicht richtig war, aber mich zumindest in die Richtung eines anderen Ansatzes geschubst hat … der geht auch, ist aber eigentlich nicht so wie es gemacht werden sollte.

So ganz verteufeln will ich KI in der Software-Entwicklung aber nicht, denn das was im neuen Xcode da als Vorschlag kommt ist schon relativ häufig eine vereinfachung, aber das ist halt meist her Schreib- als Denkarbeit.
„Ich hab zwar keine Lösung, doch ich bewundere dein Problem“
+4
Raziel130.01.2513:30
LoCal

Na dann sind das hier bestimmt nur Fake-News

Korrekt erkannt. Ich empfehle da immer selber zu testen als ein paar wenigen Nachrichten was zu glauben. Sieh es mal so: Ohne Grund werden dieses und ähnliche Tools nicht so extrem intensiv erfolgreich verwendet, wenn es so schlecht wäre. Wie bei allen Tools muss man aber damit umgehen können. Der Output ist auch immer eine Frage des Inputs bzw. was man für Informationen und Anweisungen gibt. Das Model kann eben auch nir mit dem Arbeiten, was du ihm gibst. Darüber hinaus entwickelt sich das Segment rasant. Wir reden hier von Updates die teilweise wöchentlich kommen.

Auch wir verwenden bei der Software Entwicklung täglich diverse LLMs darunter auch GPT. Ich kann dir also sagen es ist immer wieder beeindruckend. Sollte tatsächlich etwas nicht passen und es zu einem Fehler kommen beim echten Einsatz: Du kannst ihm die Fehlermeldung direkt geben und erhält dann eine daraufhin korrigierte Version.

Es ist natürlich wie bei allem kein Nachteil wenn man sich zumindest etwas auskennt mit der Materie.
-6
gfhfkgfhfk30.01.2513:34
LoCal
Kurz zusammen gefasst: AI kann die Produktivität erhöhen, man muss aber die jeweilige verwendete Sprache beherrschen, um zu sehen, ob die AI Unsinn macht.
+5
andreas_g
andreas_g30.01.2513:39
LoCal
Aber ich fände es generell gut, wenn Du in deinen Post etwas konkreter bist worum es sich gerade dreht.
Also ich nehme ja an, dass es sich um deine Arbeit an Previous dreht( da habe ich übrigens großen Respekt vor Dir und finde, dass Du das ruhig erwähnen solltest). Aber wenn Du da für bestimmte Frameworks ersetzen willst, dann wäre es hilfreich,diese zu nennen, denn vielleicht kennt hier jemand ja eine alternative, die nicht so bekannt ist, aber genau das tut was Du brauchst.

Danke! Ja, es geht um Previous. Previous hat einen integrierten NFS-Server (Code siehe ), der leider die erwähnten strukturellen Probleme aufweist. Der Server enthält einige spezifische Anpassungen und Erweiterungen und lässt sich daher nicht ohne Weiteres durch einen anderen NFS-Server austauschen.
0
LoCal
LoCal30.01.2514:23
Raziel1
Korrekt erkannt. Ich empfehle da immer selber zu testen als ein paar wenigen Nachrichten was zu glauben. Sieh es mal so: Ohne Grund werden dieses und ähnliche Tools nicht so extrem intensiv erfolgreich verwendet, wenn es so schlecht wäre.

Was meinst Du mit "erfolgreich", dass sie vielfach aktiviert sind?
1. Mittlerweile sind diese Tools Opt-Out und nicht Opt-In.
2. Wird das den ganzen Management-Fuzzis angedreht, die keine Zeile-Code schreiben und die finden das halt "geil" … vor ein paar Jahren war es Blockchain und seit Jahren "Cloud".
Raziel1
Wie bei allen Tools muss man aber damit umgehen können. Der Output ist auch immer eine Frage des Inputs bzw. was man für Informationen und Anweisungen gibt. Das Model kann eben auch nir mit dem Arbeiten, was du ihm gibst.

Nach dem was @@andreas_g schreibt, nämlich dass der C++-Code grottig ist, kannst Du Dir ja dann ausmahlen was die KI draus macht
Raziel1
Auch wir verwenden bei der Software Entwicklung täglich diverse LLMs darunter auch GPT. Ich kann dir also sagen es ist immer wieder beeindruckend. Sollte tatsächlich etwas nicht passen und es zu einem Fehler kommen beim echten Einsatz: Du kannst ihm die Fehlermeldung direkt geben und erhält dann eine daraufhin korrigierte Version.

Natürlich nur, wenn die Halluzination auch einen Fehler wirft … wenn der Code kompliiert, dann bedeutet das nicht, dass er auch richtig ist.

Aber noch mal … in einem bestimmten Rahmen nehme ich die KI gerne an, aber komplexe Dinge würde ich ihr nicht überlassen.
„Ich hab zwar keine Lösung, doch ich bewundere dein Problem“
+2
Raziel130.01.2516:31
"Was meinst Du mit "erfolgreich", dass sie vielfach aktiviert sind?"

Wir sind Softwareentwickler, ich glaube wir wissen es etwas besser als irgendwelche Manager Wir waren auch diejenigen die das aktiv eingeführt haben in den täglichen Workflow. Bei uns sind diese und andere Tools tägliche Begleiter und eben auch für alle möglichen Coding Themen. Viel mehr Erfahrung wirst du also nicht finden aus dem Bereich und daher kann ich dir sagen: Diese Tools haben ein gigantisches Potential und können die tägliche Arbeit extrem erleichtern/beschleunigen. Die Möglichkeiten sind dabei noch bei weitem nicht ausgeschöpft.

"Nach dem was @@andreas_g schreibt, nämlich dass der C++-Code grottig ist, kannst Du Dir ja dann ausmahlen was die KI draus macht "

Aus der Erfahrung: in sauberen C Code umwandeln, dabei die grottigen Segmente dementsprechend sauber aufbereiten und je nach Wunsch auch klar erklären was daran schlecht/ineffizient oder fehlerhaft ist oder aus welchem Grund etwas geändert wurde. Ja nach System wird der Code dann auch direkt live ausgeführt und sofort gegengeprüft.

Also nochmal: Diese System produzieren dir sauberen und ordentlichen Code, können aus dem nichts ganze Programme und auch vollständige Projekte hoher Komplexität erschaffen und das oft besser als es viele von Hand gemacht hätten. Das Problem sitzt hier oft eher vor dem Bildschirm und ligt meistens an schwammig formulierten Wünschen denen es an wichtigem Kontext fehlt.

ich kann hier nur vermuten das die meisten hier maximal Erfahrung mit erste Gehversuchen solcher Systeme haben oder angebotenen gratis Varianten. Es gibt auch auch zusätzlich noch viel mehr als GPT auf dem Markt. Nichts gegen GPT. Als Allrounder auch für obige Zwecke einwandfrei einsetzbar. Wobei ich dann eher O1 als Model empfehlen würde. In Kombination mit Canvas auch als live Unterstützung verwendbar. (Empfehlung aber natürlich nur, wenn es keineleri bedenken wegen Datenschutz bei dem Projekt gibt)
-4
ThorsProvoni
ThorsProvoni30.01.2516:37
Einen Eindruck von den Stärken und Schwächen bekommt man möglicherweise am Besten durch ein Beispiel. Ich habe mal die Datei NetInfoProg.cpp durch verschiedene LLMs gejagt:

Lokal installierte LLMs
  • qwen2.5-coder:32b
  • phi4:latest
  • deepseek-r1:32b

Dazu im Vergleich im Web verfügbare (größere) Modelle:
  • Mistral (https://chat.mistral.ai):
  • ChatGPT-4o
+2
LoCal
LoCal31.01.2521:04
LoCal
Natürlich nur, wenn die Halluzination auch einen Fehler wirft … wenn der Code kompliiert, dann bedeutet das nicht, dass er auch richtig ist.

Weil es gerade in meiner Timeline auftauchte:
„Ich hab zwar keine Lösung, doch ich bewundere dein Problem“
+1
Wauzeschnuff01.02.2505:34
Raziel

Das LLMs bei der täglichen Arbeit hilfreich sein können, will ich gar nicht in Abrede stellen. Ich selbst habe für mein Team gerade eine kommerzielle Lösung gegenüber dem Management durchgesetzt (u.a. mit dem Argument Produktivität).

Aber man muss eben immer auch die Randbedingungen beachten:
1. Man sollte der Zielsprache mächtig sein, um die Fehler und Problem der KI Lösung zu erkennen (gegebenenfalls auch der Ausgangssprache, wie im vorliegenden Fall).
2. man muss die Aufgaben die man der KI gibt ordentlich beschreiben. Das geht besser, wenn man sie nur kleine Funktionen oder Funktionsschnipsel schreiben lässt, als ganze Module. Wenn ich ein komplexes Problem einer KI so genau beschreiben muss, das korrekter Code entsteht, bin ich nicht mehr schneller oder produktiver, als wenn ich es gleich selbst mache. Dann formuliert die KI es letztlich auch nur noch in der geforderten Sprache um - und die muss ich ja ohnehin beherrschen, um den Code der KI beurteilen zu können.
3. Die KI ist äußerst hilfreich bei Fleißarbeiten (z.B. beim Schreiben enumerations, Chip memory layouts, Konstanten oder auch von Stubs z.B. für Entwurfsmuster, RPC, IPC, etc.)
4. Je komplexer (und einmaliger) das Problem, desto größer die Chance, dass die KI Fehler einbaut.
5. Jeder Code, den die KI erstellt muss sorgfältig von einem Menschen reviewed werden (gerade auch im Zusammenhang mit Security). Auch das geht deutlich einfacher, wenn man der KI eher kurze Codestücke und (o.a.) Fleißaufgaben gibt.

Ein Großteil dieser Bedingungen trifft aber eben auf die Anforderungen von andreas_g nicht zu. Daher bin ich eher skeptisch bei diesem Ansatz.

PS: die KI ist übrigens auch recht gut darin potentielle Speicherfehler in existierendem Code zu finden. In ca. zwei drittel bis drei viertel der Fälle hat sie zumindest teilweise recht. Das betrifft aber natürlich eher alte Sprachen wie eben C und C++ und hängt vermutlich auch von der Code-Base ab.
+2
KongoOtto
KongoOtto01.02.2508:33
qwen-coder und deepseek-r1 hatte ich auch im LM Studio ausprobiert. Die Aufgabe lautete: Schreibe eine Go Routine, die ein Ping an eine lokale IP Adresse sendet, aber nicht das Systemtool sondern die Go net Bibliothek verwendet. Die Ergebnisse waren sehr fantasievoll aber ernüchternd.
Eine richtige Antwort hat Microsoft Copilot geliefert (allerdings online).
+2
LoCal
LoCal01.02.2521:00
Ach einen Tipp hätte ich noch:

Frag doch mal im Forum bei irixnet oder Silicon Graphics User Group. Ich finde die beiden Foren sehr sympathisch und die Leute dort sind sehr hilfsbereit … und Previous User findest Du dort auch

IRIX ist wesentlich C/C++ lastiger als die Entwicklung für mac und iOS, darum dürftest Du dort mehr KnowHow finden.
„Ich hab zwar keine Lösung, doch ich bewundere dein Problem“
+4
andreas_g
andreas_g02.02.2510:15
LoCal
Ach einen Tipp hätte ich noch:

Frag doch mal im Forum bei irixnet oder Silicon Graphics User Group. Ich finde die beiden Foren sehr sympathisch und die Leute dort sind sehr hilfsbereit … und Previous User findest Du dort auch

IRIX ist wesentlich C/C++ lastiger als die Entwicklung für mac und iOS, darum dürftest Du dort mehr KnowHow finden.

Danke für den Tipp! Das Forum sehe ich mir gerne einmal an.

Derweil habe ich begonnen, Teile des Codes händisch in C zu übersetzen. Ich gehe das vorerst so an, wie ich auch andere Teile des Emulators geschrieben habe. Weil ich eine funktionierende Vorlage (in dem Fall nicht Hardware sondern Software) habe, betreibe ich daran Reverse-Engineering und baue so eine Kopie in C.
+2
gfhfkgfhfk03.02.2513:45
LoCal
IRIX ist wesentlich C/C++ lastiger als die Entwicklung für mac und iOS, darum dürftest Du dort mehr KnowHow finden.
Damals als IRIX noch aktiv entwickelt wurde, gab es da keinen Unterschied. MacOS Entwicklung wurde zu dieser Zeit ebenfalls mit C++, d.h. mit MacApp (Apples eigenes FrameWork als Teil von des MPWs) bzw. PowerPlant (MetroWerks Framework für die Mac Applikationsentwicklung als Teil der Code Warrior IDE) gemacht.

IRIX ViewKit bewegt sich noch auf Vor ISO Norm C++ Niveau. Und der MIPSPro Compiler war einmal einer der besten C++ Compiler. Die Betonung liegt auf „war“.
0
andreas_g
andreas_g03.02.2522:58
Kleiner Fortschritt: Das erste Packet (WHOAMI) wurde empfangen und eine Antwort erfolgreich versendet. Es ist aber noch einige Arbeit nötig, bis das alles richtig läuft. Aber immerhin scheint es möglich zu sein.
+4
andreas_g
andreas_g13.02.2520:28
NFS funktioniert jetzt. Als nächstes muss ich NetInfo übersetzen. Spaß mit verketteten Listen …
+2
gfhfkgfhfk14.02.2513:45
Dann hast Du ja jetzt einen Weg gefunden das Projekt in Zukunft zu warten. C++ Code im Projekt zu haben, und die Sprache nicht wirklich zu können ergibt auf Dauer keinen Sinn. Genauso Dein ursprünglicher Wunsch das Quick & Dirty abzuarbeiten und irgend wie Änderungen in den C++ Code reinzufrickeln.
+1
andreas_g
andreas_g22.02.2517:55
Falls es jemanden interessiert, ist hier der erste Entwurf der Übersetzung in C:

Bisher konnte ich keine Probleme feststellen. Es scheint soweit alles zu funktionieren. Ein paar geringfügige Verbesserungen muss ich noch vornehmen (bisher wird nicht geprüft, ob das RPC-Paket vollständig ist).

Mittelfristig möchte ich auch das ditool in C übersetzen.
+2

Kommentieren

Sie müssen sich einloggen, um sich an einer Diskussion beteiligen zu können.