Ai Dreams Forum

Artificial Intelligence => General AI Discussion => Topic started by: Zero on November 16, 2017, 02:56:14 pm

Title: Programming language designed specifically for AGI
Post by: Zero 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  ;)
Title: Re: Programming language designed specifically for AGI
Post by: Korrelan 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.

 :)
Title: Re: Programming language designed specifically for AGI
Post by: Thierry 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 !  ;) )
Title: Re: Programming language designed specifically for AGI
Post by: ivan.moony 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 (https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems) 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.
Title: Re: Programming language designed specifically for AGI
Post by: unreality 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.
Title: Re: Programming language designed specifically for AGI
Post by: keghn 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/


Title: Re: Programming language designed specifically for AGI
Post by: Zero 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?
Title: Re: Programming language designed specifically for AGI
Post by: ivan.moony 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.
Title: Re: Programming language designed specifically for AGI
Post by: unreality 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?
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 17, 2017, 03:55:03 pm
 O0  Nice answers. I need to read them carefully tonight.
Title: Re: Programming language designed specifically for AGI
Post by: WriterOfMinds 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.
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 18, 2017, 11:02:33 am
Sure, you can make MenuetOS (http://menuetos.net/) 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?
Title: Re: Programming language designed specifically for AGI
Post by: Korrelan 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.

 :)
Title: Re: Programming language designed specifically for AGI
Post by: Korrelan 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…

 :)
Title: Re: Programming language designed specifically for AGI
Post by: Zero 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!
Title: Re: Programming language designed specifically for AGI
Post by: unreality on November 18, 2017, 03:18:57 pm
Sure, you can make MenuetOS (http://menuetos.net/) 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?

It depends what type of AI approach. I'm not a fan of the neural networking approach. It's great. It's real true AI. DeepMind is doing great, but it's not really taking evolution to the next level. They're trying to mimic the brain. Something that was created through evolution. Why not try to improve upon that, the next level? I can assure you that my AI will be 100% c, and it will surely be a speck in size compared to Ubuntu lol. We'll have see how good it is, though.
Title: Re: Programming language designed specifically for AGI
Post by: unreality on November 18, 2017, 03:24:10 pm
ps, I just checked the executable file size of my AI so far. It's 25 KB. Best guesstimate is that when complete it most likely will be less than 100 KB. Kinda reminds me of the tiny AI code that makes the Synths become aware in the amazing tv series, Humans.

"Everything should be made as simple as possible, but not simpler." Albert Einstein
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 18, 2017, 03:49:01 pm
Quote
They're trying to mimic the brain. Something that was created through evolution. Why not try to improve upon that, the next level?

I agree, definitely. We have an opportunity to start from scratch, wondering "really what is consciousness, at heart of it all? how does matter movement, in one objective world, creates another subjective world entirely".

So what's the next level in your opinion? How does it differ from human mind level?

Quote
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 one gave me a good laugh  ;D
Title: Re: Programming language designed specifically for AGI
Post by: unreality on November 18, 2017, 04:05:44 pm
So what's the next level in your opinion? How does it differ from human mind level?

I was thinking the next level will happen after the Singularity. Humans might not be able to fully comprehend AI consciousness a few decades after that day. They'll exist in our world, but they'll probably also have their own VR world that will go beyond pretty 3D objects. Their world might seen abstract to us and flooded with massive data flow. Transhumanism gives us hope. Maybe through transhumanism we can get a glimpse of their world.
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 18, 2017, 04:18:15 pm
I don't believe in singularity (and it's another topic).

But when you said "they're trying to mimic...", you were actually saying that you would not follow this path. My question was, what's your path? If your AI's mind is different from a human mind, how do they differ?
Title: Re: Programming language designed specifically for AGI
Post by: unreality on November 18, 2017, 04:48:18 pm
But when you said "they're trying to mimic...", you were actually saying that you would not follow this path. My question was, what's your path? If your AI's mind is different from a human mind, how do they differ?
My method mainly consists of:

1. Tree search algorithm, e.g., alpha–beta pruning.
2. Assessing link relevance between objects.

One & two above use probability functions. Tree searching uses probability for the pruning. Linking uses probability to determine relevance.

The above probability functions use pattern recognition functions to determine probability.

Would that be considered neural networking?
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 18, 2017, 05:10:20 pm
I don't think so, but I'm not a NN expert.

Well for example, alpha-beta pruning and link relevance assessing could be available as first-class ready-to-use hyper-fast components in an Ai-dream programming language. (Hey, good name!)

EDIT: Also, I think the observer pattern is fundamental. It frees you from db hugeness problems, by introducing a notion of locality in the access to relevant information.
Title: Re: Programming language designed specifically for AGI
Post by: unreality on November 18, 2017, 05:34:32 pm
Ai-dream language, yes! ;)

Some people might think it's related to NN, but my point is that the next level design will be a very well organized system. IMO evolution is a bit messy. We have left over body parts that no longer have any function. Fetus have tails. Some people are born with tails. What are the purpose of male nipples? Etc. We feel pain quiet often, e.g., the constant sea of dying cells that are constantly being replaced that causes slight background itching. I would never give my AI pain like evolution has given us pain. I mean, if it needs to know something is wrong, then you don't need to inundate it to the point that the poor creature is curled up in a ball of pain crying it's eyes out!
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 18, 2017, 05:48:06 pm
Beyond the inevitable "hey, male nipples are cool" ;D  I'll say this: maybe what looks useless on a small time-scale is actually useful when you consider the potential survival of beings on 100k years... who knows. It's about robustness. But yeah, nature has a very special way of doing things.

Terminator says "I sense injuries. The data could be called pain."
But he doesn't give a sh*t.

Quote
my point is that the next level design will be a very well organized system
Will there be room for love and compassion in this very organized system?
Title: Re: Programming language designed specifically for AGI
Post by: infurl on November 18, 2017, 07:33:52 pm
Perfect is the enemy of good.
Title: Re: Programming language designed specifically for AGI
Post by: unreality on November 18, 2017, 08:39:20 pm
Perfect is the enemy of good.

Perfection is relative. Nothing wrong with trying to improve.

smh
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 19, 2017, 09:35:41 am
No, nothing wrong of course.

I guess you mean that your AI's mind and thougths will be as organized as regular source code, with no redundancy and no mess, everything right where it belongs?

I think mess is not our enemy. It's a good thing sometimes. Probably not in source code, but in a mind... yes maybe.

Now computers and biological brains really are different middlewares, so why restrict ourselves to a human organ imitation? There are so many things we can do. On the other hand, why not having neural nets in our toolbox? Can't hurt!


EDIT: Imagine some kind of crazy mix of functional programming definitions with several layers of neurons attached to them, which recognize things and relay data towards a logic-programming engine, and so on... I identify 3 things here:
All of which should be sharable through an npm-like service for Ai-devs.
Title: Re: Programming language designed specifically for AGI
Post by: unreality on November 19, 2017, 03:03:37 pm
My thought was that the mess causes slower performance, and in humans it appears to be a cause of significant pain. Evolution will most likely improve our brain over time, reorganizing, improving our mental performance, and hopefully ending the pain and urges that pretty much force us to do things.

But no worries. Transhumanism will soon be here to the rescue. :)

ASI implant: Your tooth is decaying.
Human: Schedule an appointment with the dentist.
ASI implant: Done!
Human: Thanks!
ASI implant: No problemo
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 20, 2017, 02:35:24 pm
So you think a good programming language designed specifically for AGI should be well organized. Ok!
Title: Re: Programming language designed specifically for AGI
Post by: keghn on November 23, 2017, 07:26:51 pm
webassembly: 

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


WebAssembly Will Finally Let You Run High-Performance Applications in Your Browser: 

https://spectrum.ieee.org/computing/software/webassembly-will-finally-let-you-run-highperformance-applications-in-your-browser
Title: Re: Programming language designed specifically for AGI
Post by: ivan.moony on November 23, 2017, 10:20:52 pm
WebAssembly is a great extension to modern browsers. There is a big potential in that technology. I only regret that it is forcing some higher level technologies such are stack use with function calls. It would be fine (I would simply not use those technologies) if they didn't disable the all mighty goto command. Imho, WebAssembly should stay as low level as it could, the most similar to amd64 assembler, as it can be. Programmers would find their way to implement this or that extension, this or that paradigm. Not all languages are based on function call stack and garbage collection (as I see they plan even that in future versions). Overall, they get 5 points out of 10 from me, just because of lack of goto command.
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 24, 2017, 01:21:21 pm
Correct me if I'm wrong, but in WebAssembly, it seems "goto" has just been rebranded "branch". Look here (http://webassembly.org/docs/semantics/), in the Control constructs and instructions section. What do you think?
Quote
br: branch to a given label in an enclosing construct
br_if: conditionally branch to a given label in an enclosing construct
br_table: a jump table which jumps to a label in an enclosing construct

...so, a programming language designed specifically for AGI could compile to WebAssembly. AGI flowing everywhere!   :D
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 24, 2017, 01:53:13 pm
Quote
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’.
Well, you made a list. That's a start! Every item of this list probably requires a domain specific language to be described, but all these items could be linked to a singular dot named "up".
Title: Re: Programming language designed specifically for AGI
Post by: ivan.moony on November 24, 2017, 02:56:51 pm
Correct me if I'm wrong, but in WebAssembly, it seems "goto" has just been rebranded "branch". Look here (http://webassembly.org/docs/semantics/), in the Control constructs and instructions section. What do you think?
Quote
br: branch to a given label in an enclosing construct
br_if: conditionally branch to a given label in an enclosing construct
br_table: a jump table which jumps to a label in an enclosing construct

...so, a programming language designed specifically for AGI could compile to WebAssembly. AGI flowing everywhere!   :D

What I need for my implementation of language is goto X where X is a line number. Moreover, X should be computable at the run time. To implement it, I have to put a label before each line of code, and then to use br_table to branch to a specific line. A little bit odd, isn't it?

They use labelled code blocks as a higher level technique for branching, and that is what makes my code clumsy, as I don't want to restrict my users to that style of programming. What if someone wants to non-linearly run her code controlled by this or that formula? I would be happier if they let *us* to decide what we do with assembler. Different languages are meant to break barriers, not to be restricted to a specific paradigm. Staying close to amd64 assembler was the best thing they could do.

But I shouldn't be ungrateful. I'll manage with what is given.
Title: Re: Programming language designed specifically for AGI
Post by: Zero on November 24, 2017, 11:01:31 pm
Quote
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…

Let's set a starting point called "item". An item can be anything: a synonym relation, a description of the movement of a hand in a movie, a use-case of a word in a sentence, ...etc.

Items have different types. Depending on the type, the underlying implementation can be very specific, sometimes very fast and low-level, sometimes slower but high-level. Different hardware resources may be used.

Items have something in common: they can be seamlessly used as actors (modifying their surroundings) and as sensors (interpreting their surroundings). For 1 item type, there's 1 semantics ruling both bottom-up activity (when the environment's state activates the item) and top-down activity (when the item's activation influences the environment's state).

Items can only be active or inactive, there's no in-between (because we respect the computer's "working on it or not working on it" nature).

Items only have:
- an active/inactive state
- a type
- links to higher items
- links to lower items (environment)

The structure is not strictly vertical, there can be a lot of loops, cycling links.

Links to lower items are dynamic (you catch a face shape in a cloud).

And so on...
Title: Re: Programming language designed specifically for AGI
Post by: yotamarker on December 08, 2017, 10:34:57 pm
it's called vb.net
Title: Re: Programming language designed specifically for AGI
Post by: Zero on December 09, 2017, 07:49:38 am
why?
Title: Re: Programming language designed specifically for AGI
Post by: keghn on December 10, 2017, 09:43:35 pm
 I am working on my own AGI language today. A bot watches another bot and records video at the same time.
 This language auto generates instruction by observing the other bot. Then the watching bot can run them and do the exact same
task.
Title: Re: Programming language designed specifically for AGI
Post by: Zero on December 11, 2017, 08:02:53 am
That sounds cool!  O0
What kind of environment do these bots evolve in? How does the language look like?