Programmieren mit natürlicher Sprache



  • "x += 4" ist auf jeden Fall viel kürzer zu schreiben als "addiere 4 auf x" oder ähnliches.

    Ich finde die Frage interessanter ob man es nicht hinbekommen könnte eine Grammatik zu entwickeln die halbwegs intuitiv und gut zu lesen ist UND gleichzeitig einfach zu schreiben und kurz.
    Das wäre fein.

    Natürlich müsste diese Grammatik auch ziemlich mächtig sein, ich meine BASIC neu zu erfinden bringt ja schliesslich nix 🙂



  • hustbaer schrieb:

    Ich finde die Frage interessanter ob man es nicht hinbekommen könnte eine Grammatik zu entwickeln die halbwegs intuitiv und gut zu lesen ist UND gleichzeitig einfach zu schreiben und kurz.

    => VB.NET (zumindest als Basis). Allerdings hast Du ja schon korrekt erkannt, dass das gewisse Restriktionen hält. Ich denke daher, dass eine Kurzschreibweise (Ruby, Boo …) immer geeigneter ist. Die C++-Syntax ist in dieser Hinsicht natürlich Murks.



  • Jester schrieb:

    finix schrieb:

    Nur wenn du dich mit der Notation auskennst und auch tatsächlich schreibst und nicht sprichst.

    Aber die Notation zu lernen ist nur ein ganz kleiner Schritt, den man nebenbei erledigt. Oder denkst Du wenn die blöde Notation nicht wäre könnte das jeder machen?

    Naja, es geht hier schließlich um die Zukunft á la Star Trek, da denkt man doch eher an die Oma die dem neuen Toaster ihre Vorlieben beibringt oder tatsächlich den Holorekorder programmieren kann 😃

    Und auch bezüglich dem 'klassischem' Programmieren würde ich meiner IDE lieber "erhöhe x um 4" erzählen statt "x plusgleich 4". (In der textuellen Ansicht sollte sie mir das dann aber schon schön kompakt darstellen.)



  • rüdiger schrieb:

    sprechendermensch schrieb:

    So ähnlich wie in Star Trek. "Computer berechne ...".

    Ist das nicht so wie so eher die Bedienung, anstelle die Programmierung? Naja, Sprach-Bedienung gibt es ja schon seit längerem (in mehr oder weniger schlecht funktionierenden Varianten ;))

    Ist eher Bedienung eines Programmes. "Computer, leite die Lebenserhaltungsenergie um..." oder "Computer, erstelle mir ein Luftschloss mit einer Prinzessin...". Sowas ist ja wohl sehr leicht umzusetzen.

    Ich könnte mir Vorstellen, dass man das Grundgerüst eines Programmes in einer nat. Sprache aufbauen könnte. UML ist z.B. dafür geignet. "Erstelle mir ein Singleton", "Erstelle mir einen Obserable Foo und 4 Observer Bar, die Foo beobachten sollen", "Lass Klasse Blub die Methode Foo implementieren und erweitere das Interface Bar dementsprechend".



  • vieleicht bin ja nur ich, aber die meiste zeit wenn ich Progge habe ich eine "Vorstellung" wie der Code sein soll und setze die dann um _ohne_ das ich das "in Worte fassen könnte". Es ist mehr ein Bild vor dem inneren Auge.

    Und schaut euch mal die Postings hier in den Foren an. Die wenigsten Poster sind auch nur annähernd in der Lage ihre Programme zu beschreiben (und das obwohl die meisten dieser "Programme" weniger als 100 Zeilen Sourcecode haben, go figure). Die technische Möglichkeit einer solchen Spracherkennung hin oder her, ich glaube nicht das dies wirklich ein Fortschritt wäre...

    Was dagegen viel spannender wäre wäre ein "do-what-i-think" Computer... Halt einer der dieses Bild vor meinem inenren Auge umsetzen kann ohne den Umweg über irgendeine Sprache gehen zu müssen.



  • loks schrieb:

    Die wenigsten Poster sind auch nur annähernd in der Lage ihre Programme zu beschreiben (und das obwohl die meisten dieser "Programme" weniger als 100 Zeilen Sourcecode haben, go figure).

    😃 👍



  • loks schrieb:

    vieleicht bin ja nur ich, aber die meiste zeit wenn ich Progge habe ich eine "Vorstellung" wie der Code sein soll und setze die dann um _ohne_ das ich das "in Worte fassen könnte". Es ist mehr ein Bild vor dem inneren Auge.

    Es ist eben eine andere Denkweise, die sich mit der normalen Sprache nicht gut ausdrücken lässt. Das wäre so, als würde man versuchen, nur mit mathematischen Symbolen Lyrik zu verfassen. Sicher, es geht, doch geeignet ist es nicht.



  • Konrad Rudolph schrieb:

    Das wäre so, als würde man versuchen, nur mit mathematischen Symbolen Lyrik zu verfassen. Sicher, es geht, doch geeignet ist es nicht.

    Du kannst jeden mathematischen Ausdruck sowohl lesen als auch in reguläre, natürlichsprachliche Syntax verpacken. In diesem Sinn ist die mathematische Ausdrucksweise also eine Teilmenge der natürlichen Sprache. Der Umkehrschluß folgt daraus jedoch noch lange nicht. Ob sich jeder natürlichsprachlicher Ausdruck mathematisch abbilden also ausdrücken lässt, ist die große Frage. Wenn dann dürfte dabei wohl die konkrete, äußere Form verloren gehen. Natürlich kann man "Freak-Lyrik" produzieren. Aber Lyrik allgemein kann man wohl nicht mathematisch ausdrücken. 🙂



  • sobald ein system dazu in der lage ist, auf natürlichsprachliche eingaben entsprechend zu reagieren, ist programmieren im klassischen sinne gar nicht mehr nötig.

    was dazu allerdings benötigt wird, ist eine weitaus "intelligentere" KI, als uns heute zur verfügung steht. ich bin mir aber sicher, dass diese irgendwann mal existieren wird.

    star trek ist in dieser hinsicht tatsächlich "revolutionär". was wäre so ein intelligentes system? der perfekte rechner. ich brauch keine standardapplikationen mehr. ich brauch keine browser, keine textverarbeitung. nichts braucht man, nur dieses intelligente system. es hat alles nötige "wissen" um auf meine eingabe "schick peter mal ne nachricht, dass ich heute doch nicht zum essen komm." alles nötoge veranlassen können, um mit peters rechner eine verbindung aufzubauen und diese nachricht zu übermitteln. peters rechner wird dann eine geeignete methode wählen, diese nachricht mitzuteilen. vielleicht als gesprochene nachricht. vielleicht als lustiges animation.

    solche systeme sollten das "endziel" der informatischen entwicklung sein. endziel deshalb, weil es auf einen schlag millionen von arbeitsplätzen in der softwareentwicklung vernichten wird 😉



  • thordk schrieb:

    sobald ein system dazu in der lage ist, auf natürlichsprachliche eingaben entsprechend zu reagieren, ist programmieren im klassischen sinne gar nicht mehr nötig.

    was dazu allerdings benötigt wird, ist eine weitaus "intelligentere" KI, als uns heute zur verfügung steht. ich bin mir aber sicher, dass diese irgendwann mal existieren wird.

    star trek ist in dieser hinsicht tatsächlich "revolutionär". was wäre so ein intelligentes system? der perfekte rechner. ich brauch keine standardapplikationen mehr. ich brauch keine browser, keine textverarbeitung. nichts braucht man, nur dieses intelligente system. es hat alles nötige "wissen" um auf meine eingabe "schick peter mal ne nachricht, dass ich heute doch nicht zum essen komm." alles nötoge veranlassen können, um mit peters rechner eine verbindung aufzubauen und diese nachricht zu übermitteln. peters rechner wird dann eine geeignete methode wählen, diese nachricht mitzuteilen. vielleicht als gesprochene nachricht. vielleicht als lustiges animation.

    solche systeme sollten das "endziel" der informatischen entwicklung sein. endziel deshalb, weil es auf einen schlag millionen von arbeitsplätzen in der softwareentwicklung vernichten wird 😉

    Verrat mir bitte was daran revolutionär ist? Sowas wäre jetzt schon möglich, hätten wir eine bessere Spracherkennungssoftware.

    "schick peter mal ne nachricht, dass ich heute doch nicht zum essen komm." In dem Satz ist alles an Info drinner, wie du es per Hand machen würdest.

    schick peter mal ne nachricht

    E-Mail oder Messanger öffnen, als Empfänger die Adresse von Peter eintragen, als Nachricht:

    ich [komme] heute doch nicht zum essen
    

    Wieso sollte es irgendwelche Arbeitsplätze vernichten? Du brauchst immernoch einen Messanger, eine Spracherkennungssoftware, einen Browser und einen Texteditor... Nur das diese Software von einer Software bedient wird, die der Benutzer per Sprache bedient. Die Hersteller von Tastaturen und Mäusen wären nur ärmer, aber sonst würde sich nicht viel ändern.


Anmelden zum Antworten