Programming language designed specifically for AGI

  • 38 Replies
  • 1082 Views
*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 477
  • Fictional character
    • SYN CON DEV LOG
Programming language designed specifically for AGI
« on: November 16, 2017, 02:56:14 pm »
It's Xmas soon, how about making a wishlist!

Can you imagine a programming language designed specifically for Artificial General Intelligence... What features should it have? Would it be compiled or interpreted, or both at the same time? Dynamic or static typing? Strong or weak? What paradigmS? What syntax? What semantics? What ecosystem? What code-sharing system?

Don't be shy, you can ask for anything, like an entire DeepNN running in GPU defined as easily as a javascript one-line function, and access to NLP tools from python, all in the same place!

What's a conscious mind developper's dream language?

EDIT: and don't tell me "C", unreality  ;)
« Last Edit: November 16, 2017, 06:27:52 pm by Zero »

*

korrelan

  • Trusty Member
  • *********
  • Terminator
  • *
  • 784
  • Look into my eyes! WOAH!
    • Google +
Re: Programming language designed specifically for AGI
« Reply #1 on: November 16, 2017, 08:21:41 pm »
Surely the best/ ideal method for programming an AGI is to be able treat it as you would another intelligent human.  Language, verbal explanations, hand gestures, diagrams, books, etc… though this would probably come later once the AGI has developed enough to comprehend.  Prior to this the system would ideally learn through experience, through living amongst and observing its human peers.

 :)
It thunk... therefore it is!

*

Thierry

  • Nomad
  • ***
  • 57
  • God is a sphere. Press 9 to enter.
Re: Programming language designed specifically for AGI
« Reply #2 on: November 16, 2017, 10:44:13 pm »
Agreeing with Korrelan. Programming is the last word of any AI book. (actually it is not forbidden to program from time to time at least not to lose the hand !  ;) )

*

ivan.moony

  • Trusty Member
  • *********
  • Terminator
  • *
  • 799
  • Can computers cry?
    • Structured Type System
Re: Programming language designed specifically for AGI
« Reply #3 on: November 16, 2017, 11:10:48 pm »
If I had to choose, I'd pick functional over imperative language, but what I'd really like to see is a neat blend of those two. Everywhere where I look, there is a clear distinction between those two paradigms, often paired in the same language. Functional paradigm is good for static world definitions, while imperative is good for dynamic worlds. Maybe, what I'm looking for is something different from, but includes both of mentioned paradigms  as a superset .

Maybe I'm asking too much because of Gödel's theorem which says that you can't have complete and consistent theory in the same time. If it is consistent, you have to give up completeness, and if it is complete, you have to give up consistency. This is a theorem because of which Stephen Hawking gave up searching for theory of everything, concluding that it doesn't exist in this Universe.

The problem also reminds me of the difference between quantum mechanics as a physics of small objects versus relativity theory as a physics of large objects. There are big problems of fusing those two, as I hear that quantum gravity gives big headaches to physicists.
If you vaporize a teardrop, you get a salt.   :flake:

*

unreality

  • Electric Dreamer
  • ****
  • 109
  • vividly dreaming inside a matrix
Re: Programming language designed specifically for AGI
« Reply #4 on: November 17, 2017, 12:27:34 am »
The way I see it is that the best language is the one that will produce the smallest & highest performance code. For me that's c, one of the lowest level languages next to assembly / machine language. It's possible to do the performance related code in asm, but I'll leave that for to Synthetics. ;) They'll do a much better job.

I believe high level languages are for the convenience of the programmers and whatever companies who are paying said programmers. It can save time and make their life easier. As SEs often say, "Do it the easy way first and then improve for performance later," but after spending decades of writing the same code twice I now plan out and do the performance related code the best way the first time. Low level coding, when done well, is usually a lot faster and takes less memory.

Even more so than code I think hardware could be the greatest improvement for AI, but that should come after your AI is running well. You can have custom hardware functions that will be magnitudes faster than your code. Possibly hundreds of times faster.

*

keghn

  • Trusty Member
  • ********
  • Replicant
  • *
  • 689
Re: Programming language designed specifically for AGI
« Reply #5 on: November 17, 2017, 01:21:46 am »
Julia:
https://devblogs.nvidia.com/parallelforall/gpu-computing-julia-programming-language/

 Python is taking over machine learning and computer vision. The young ones just hate c. And then go right on over to python.
 But i am to sticking to C/C++ and a fast scripting language, like bash. And then later replace bash with my own very simple
scripting code that is loaded on to a ram disc files, that C/C++ can access.

ram drive:
https://en.wikipedia.org/wiki/RAM_drive

http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/



*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 477
  • Fictional character
    • SYN CON DEV LOG
Re: Programming language designed specifically for AGI
« Reply #6 on: November 17, 2017, 09:10:24 am »
Thank you all for your interesting inputs :)

Quote
I believe high level languages are for the convenience of the programmers and whatever companies who are paying said programmers.

IMO, you're forgetting a few crucial use-cases here, aren't you?

First, you can't sandbox untrusted C code. Without interpreted languages (where sandboxing is possible), or at least managed languages, internet simply wouldn't exist! Who wants to give an unknown website access to everything on the computer...

Another use case is algorithms that rewrite themselves. Sure, you can programmatically kill a process, rewrite its C code, recompile it, then relaunch the process. But it's a very time consuming procedure. Nothing is more dynamic than mental activities. If you have to redefine things, say, 100 times a sec, well you can't. Ok you can modify little things in machine language from machine language. But for very high-level concepts implementations, it's practically impossible. Or is it?

A killer programming language would perhaps compile to something half-interpreted half-asm, giving the programmer a choice: some parts of the program run very fast, some parts of it can be modified very quickly during execution... The result of the compilation process would therefore be a custom virtual machine, constructed specifically for the program being compiled.

Quote
If I had to choose, I'd pick functional over imperative language, but what I'd really like to see is a neat blend of those two.

A lot of  languages are indeed mixing them, thus being "not pure". Often, non-functional fragments are marked as such. How would you blend them neatly?
« Last Edit: November 17, 2017, 09:45:09 am by Zero »

*

ivan.moony

  • Trusty Member
  • *********
  • Terminator
  • *
  • 799
  • Can computers cry?
    • Structured Type System
Re: Programming language designed specifically for AGI
« Reply #7 on: November 17, 2017, 03:18:11 pm »
Quote
If I had to choose, I'd pick functional over imperative language, but what I'd really like to see is a neat blend of those two.

A lot of  languages are indeed mixing them, thus being "not pure". Often, non-functional fragments are marked as such. How would you blend them neatly?
Maybe it's impossible, but who knows? And maybe it's not necessary. Spreadsheets are doing a nice job (aside from imperative scripting) of shifting all the side effects to a user interface. That means that all the side effects could be  maintained not by the functional language itself, but by an outer shell that directs which cell changes on user or other demand.
« Last Edit: November 17, 2017, 04:09:01 pm by ivan.moony »
If you vaporize a teardrop, you get a salt.   :flake:

*

unreality

  • Electric Dreamer
  • ****
  • 109
  • vividly dreaming inside a matrix
Re: Programming language designed specifically for AGI
« Reply #8 on: November 17, 2017, 03:29:43 pm »
Thank you all for your interesting inputs :)

Quote
I believe high level languages are for the convenience of the programmers and whatever companies who are paying said programmers.

IMO, you're forgetting a few crucial use-cases here, aren't you?

First, you can't sandbox untrusted C code. Without interpreted languages (where sandboxing is possible), or at least managed languages, internet simply wouldn't exist! Who wants to give an unknown website access to everything on the computer...

Another use case is algorithms that rewrite themselves. Sure, you can programmatically kill a process, rewrite its C code, recompile it, then relaunch the process. But it's a very time consuming procedure. Nothing is more dynamic than mental activities. If you have to redefine things, say, 100 times a sec, well you can't. Ok you can modify little things in machine language from machine language. But for very high-level concepts implementations, it's practically impossible. Or is it?

A killer programming language would perhaps compile to something half-interpreted half-asm, giving the programmer a choice: some parts of the program run very fast, some parts of it can be modified very quickly during execution... The result of the compilation process would therefore be a custom virtual machine, constructed specifically for the program being compiled.

Quote
If I had to choose, I'd pick functional over imperative language, but what I'd really like to see is a neat blend of those two.

A lot of  languages are indeed mixing them, thus being "not pure". Often, non-functional fragments are marked as such. How would you blend them neatly?

You can do anything in c! ;) Like I said, if it's about performance and how tight the code is (executable size), then it's almost impossible to come close to c & asm. When I write a windows application I'm always disappointed if it's not at least 1/20th the size and the performance of similar software. SEs have contacted me asking how it's possible my program does what it does it just 140KB when it should be more like 7MB. I write back saying what in the world is my Visual Studio compiler stuffing inside my Windows program that makes it as massive as 140KB lol? That's because they get caught up in the comfort of OOP. That's fine, but SEs should understand there's a price to pay for that comfort. A few years ago I wrote a tiny bootable OS that was about 1/10th that size, and it also had a web server, if memory holds true. The boot time, once it got past the bios haha, was measured in microseconds.

I'm not trying to trash SEs. There's nothing wrong with modern coding because it makes the coders life easier, it saves time, and therefore $$$, and therefore the root of the problem, capitalism. That's my 2 cents on the lack of hyper performance code.

A server better be able to sandbox c or any executable. That's what privileges are about. It's been about 4 years since I wrote server side code, but back then they allowed it. These days I wouldn't be surprised if most hosting companies don't allow much. OTOH, server side coders aren't interested in c, and so servers aren't designed for it. The web server I wrote was designed for it.

What code needs to recompile 100 times per second or even once per second? You're not talking about AI are you? If AI needs to do that then that's when you need to shout out, "Houston, we have a problem." never AI would, but in that case it depends if you need performance. If performance is a requirement then I would write my own custom interpretive language in c, and I'd bet the farm the benchmark would be at least 50 times better than php or python. For most cases probably over 500 times.

That's the power of custom low level coding. OF course the coder has to know the art of hyper performance coding. I'm currently writing a custom db for my AI and getting anxious to compare it to commercial ones, say mysql. I'll be disappointed if my IMDB (in-memory database) isn't at least 500 times faster than mysql. Can you imagine your AI running a thousand times faster? Can you imagine a human who thought a thousand times slower?

*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 477
  • Fictional character
    • SYN CON DEV LOG
Re: Programming language designed specifically for AGI
« Reply #9 on: November 17, 2017, 03:55:03 pm »
 O0  Nice answers. I need to read them carefully tonight.

*

WriterOfMinds

  • Trusty Member
  • ***
  • Nomad
  • *
  • 63
    • WriterOfMinds Blog
Re: Programming language designed specifically for AGI
« Reply #10 on: November 17, 2017, 09:09:14 pm »
Quote
There's nothing wrong with modern coding because it makes the coders life easier, it saves time, and therefore $$$, and therefore the root of the problem, capitalism. That's my 2 cents on the lack of hyper performance code.

Time is a finite resource whether there's a profit motive involved or not.  I neither get any money out of my AI work nor spend any money hiring other coders, and it's quite possible that I never will ... but I still have a serious need to conserve coding time.

My instinct is that if my AI gets so computation-intensive that it can't run on a modern computer without being hyper-optimized, I'm probably taking the wrong approach to begin with.

*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 477
  • Fictional character
    • SYN CON DEV LOG
Re: Programming language designed specifically for AGI
« Reply #11 on: November 18, 2017, 11:02:33 am »
Sure, you can make MenuetOS in assembly all alone. But can't make Ubuntu in assembly all alone. Is a complete AGI smaller than Ubuntu? I don't think so.

Don't get me wrong, unreality, I love C, and I believe it all has to start with low-level. But you can't stay low-level all the way. Programming languages that are fat and slow are general purpose programming language. But can't we imagine an AGI-specific high level programming language, which of course would be implemented in C, and which would be real fast because the very parts that need to be fast would be already hard-code in C or assembly?

Quote
Maybe it's impossible, but who knows? And maybe it's not necessary. Spreadsheets are doing a nice job (aside from imperative scripting) of shifting all the side effects to a user interface. That means that all the side effects could be  maintained not by the functional language itself, but by an outer shell that directs which cell changes on user or other demand.

Maybe one of them inside of the other?

EDIT: WriterOfMind, do you have any feature you'd like to see in such a language?
« Last Edit: November 18, 2017, 12:07:10 pm by Zero »

*

korrelan

  • Trusty Member
  • *********
  • Terminator
  • *
  • 784
  • Look into my eyes! WOAH!
    • Google +
Re: Programming language designed specifically for AGI
« Reply #12 on: November 18, 2017, 12:08:03 pm »
Being an engineer and programmer, the old adage ‘the right tool for the right job’ always rings true. 

From my experience the fastest languages are always the slowest too program with.  I personally use a fast-to-develop language and only worry about optimizing ‘bottle necks’ with C, C++ extensions after I've profiled, and they are required.

Why waste time prematurely optimizing… time is very precious.

 :)
It thunk... therefore it is!

*

korrelan

  • Trusty Member
  • *********
  • Terminator
  • *
  • 784
  • Look into my eyes! WOAH!
    • Google +
Re: Programming language designed specifically for AGI
« Reply #13 on: November 18, 2017, 12:56:21 pm »
For an ideal programming language I would design something that could portray concepts, logic, spatio-temporal information/ knowledge/ events in an easy to comprehend 4D virtual graphical environment… oh wait… I already did that lol. 

However… here is some drunken babbling regarding an alternative ideal scripted/ graphical language for creating an AGI.

All human knowledge/ history/ etc can be explained using just 26 characters and a few symbols but both sides of the dialogue require a massive background of experiences and knowledge to be able to understand the conversation… a language is a very high level construct.

How would a written language encompass and define abstract concepts like ‘love’ or even the regularly used concept of ‘up’?  The word ‘up’ is used in so many word combinations to mean so many different things… even if someone just stands in front of you and points ‘up’ you get the meaning straight away.

The human concept of ‘up’ is a combination of many facets, the phonemes that produce/ recognise the sound, the line/ shape patterns the scribe the letters, the memories of it being used in sentences, the maps of motions someone’s hand makes when they point up, knowing that up is the opposite of down, that up can mean above/ higher, etc, etc, all mixed together and experienced at once. I don’t see how a written language could even begin to describe the qualia of even simple concepts like ‘up’.

It’s the low level abstract ‘mental’ mechanisms we are missing, our brains machine code, and a suitable way to both generate and describe them. 

I don’t think you can label a concept like ‘up’; it’s a thing, a blob, a shape… a pattern.



Below is my brain trying to define a concept, of how a concept driven AI chatbot could function.  It’s the first part of a set of notes from a brain storm last night… I don’t have the time to convert into paragraphs so I'm posting my ‘thought’ stream lol.  I would imagine an ideal language/ schema to probably include…

Concept engine?

Roundish?

Love/ hate length vectors, they were very close but have become distant.

Every concept is multidimensional

Paragraph/ set to describe one word/ concept..

I use slashes (/) to define concepts, provide extra meaning, links.  Sometimes I’m just being lazy and can’t think of correct description/ phrase/ word/ terminology… lol. It seems similar to ‘a picture paints a thousand words’ Graphical link? Concept cross link?

Concept Thesaurus, concept objects? Object orientated concepts?

A set of registers you can feed loads of concepts that build an overall pattern/ picture that represents the main concept, like mixing colours.

New subject linked into/ overlaid over and existing template or concept map.

Concept space/ maps with no entry point, take it right back to the word letters?

Circular/ 3D concept map where layers rotate within each other, or points move closer to current topic but keep links? Use high dimensional/ adaptive concept maps?

Build up a topic picture/ pattern within the concept map.

https://en.wikipedia.org/wiki/Concept_map

Concept map links are built from concepts perhaps linked to emotional amounts/ values.

So ‘is a’ or ‘same as’ have their own concepts.

Use temporal ordering of letters/ words in a sentence to form concept map.

Not using labels but symbols/ values/ Meta tag/ Hash/ custom encoding?

Good/ bad emotions/ feelings/ meanings on linear scales?

An object or concept is described by the links into the main concept map, no concept facets are duplicated, and so all references become cross linked. (Meta tags?)

Concept maps can be adapted by input sentences, links need strength values.

The output from a concept map/ block creates a unique value that effects how the next concept maps process the concepts.  This helps limit the hierarchical depth.  Binary encoded/ gated concept outputs, one number to specify which outputs, for that topic? Emotion could affect binary gates?

The binary encodings can be changed by a description or experience of that concept.

Use set questions to resolve conflict between/ within concepts.

So a small dog (dog, size 2 (output 2))… a large dog (dog, size 5 (output 1, 3))?. Binary value defines output branch to include different concepts based on size. Ie: patterns of eight branches.

Use time delay/ countdown on concepts to track conversation topics?

Concepts are fired linearly depending on the order of the letters/ words of the input stream. Already triggered concepts guide how the rest of the input stream is received/ encoded.

Expand the topic into as many concept dimensions as possible and only save the top few as the index?  Encode high dimensional space?

?? Will a Mouse fit into a soup can?
‘Will’ (whole sentence?) – Question – concept – requires response – output
‘a Mouse’ (a) – mammal – rodent – size – volume – x,y,z
‘fit into’ – function – volume comparison – a < b
‘a soup can’ (b) – object – metal  - container – cylindrical – size – volume – x,y,z
if volume (a) < volume (b) then ans = yes else no (define conceptually/ graphically/ spatially)

Use generic concept comparison functions to compare concept values?

And so on…

 :)
It thunk... therefore it is!

*

Zero

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 477
  • Fictional character
    • SYN CON DEV LOG
Re: Programming language designed specifically for AGI
« Reply #14 on: November 18, 2017, 02:07:05 pm »
I'm in love korrelan :D

Ok. We probably can't define precisely concepts like "love" or "up"... The definition of what love is would be so hard to create using a formal language! Perhaps it might be possible to describe precisely, not what it is, but the effect it has when it pops up in mind, or when it comes as part of a thought train. What influence the concept "love" has on other concepts, when they're involved in the same frame (weight vectors, ...etc). That we can describe, can't we?

Also, it reminds me an idea that comes back every now and then in me. All general purpose programming languages use abstract data types. Numbers, strings, associative arrays... How about a programming language that has real-life data types! Like, not only weight, space-length, time-length, ...etc, but also "real-thing" types like human, dog, car, job... There are several upper ontologies available, some of which are good quality. They could serve as hierarchical basis. The trick behind this is to say: we don't care about what "love" is, as long as we can deal with it. See what I mean? Maybe we don't have precise definitions in our brains!

 


Users Online

38 Guests, 1 User

Most Online Today: 48. Most Online Ever: 208 (August 27, 2008, 09:36:30 am)

Articles