Is Wolfram Language a true programming language? [closed] - turing-complete

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
Wolfram is about to release its "knowledge based programming language" but is it really a true programming language in the same way as C#, Java etc?
To avoid this being too subjective, I'll clarify that by "true programming language" I mean: is it Turing complete?

What qualifies as "true" for you? Do you mean Turing complete?
see From this answer
In general, for an imperative language to be Turing-complete, it needs:
A form of conditional repetition or conditional jump (e.g., while, if+goto)
A way to read and write some form of storage (e.g., variables, tape)
In Venture Beat's coverage of Wolfram's announcement of the language they write:
In other words, “South America” is not a variable to be assigned, or an object or class to be instantiated. It’s a phrase that is known and understood, with significance and meaning and connections that can be pulled into your program with very little effort, and no external data sources. And, that knowledge source is continually updating and growing to match the updating and changing world.
Source
Which makes it sound as if the focus of the language is on the Wolfram Database and various ways of manipulating this data.
Wolfram himself further says of the language
“The level of automation is incredibly higher than people could ever have before – it’s incredibly powerful,” Wolfram says. “Anything that WolframAlpha knows, your app knows.”
Source
Which once again sounds like what we're looking at is a scripting language aimed at harnessing Wolfram Alpha's combination of data + search algorithms.

Related

Is there a way to understand what algorithms does PostgreSQL use to implement relational operators without having to read the source code? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
PostgreSQL makes use of intraoperation parallelism and that is of interest to me (for my undergad final year research project). I would like to know how operations like selection, projection, join, etc are parallelized, but when I tried to look at the source code, I got extremely overwhelmed. Is there a high-level PostgreSQL "map"?
I tried looking for books that discuss and explore the algorithms and implementations used in PostgreSQL, but unfortunately didn't find any. Though feel free to refer me to such a book if you know about one.
If the only option I have is to dig into the source code, how long would it take me to find the information I want? And if any of you have gone through the source code, what advise would you give to me?
The nice thing about open source is that there is no clear border between the source code and the documentation, since both are public. As soon as you get deeper into the implementation details, you will start reading the code. Fortunately the PostgreSQL code is well written and quite readable.
The first stop on your way into the source are the README files. These describe implementation principles, algorithms and code rules at a higher level. In your case, you should start with src/backend/access/transam/README.parallel.
Another good approach it to read the patches that introduced the feature, like 924bcf4f16d, 7aea8e4f2daa, d1b7c1ffe72, f0661c4e8c44 and 80558c1f5aa1. That introduces you to the places in the code that are concerned with parallel query and gives you an idea how it all works.

Can programming be truly declarative? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I've been teaching myself a bit about declarative vs imperative programming, and I've come to the (possibly false) understanding that declarative programming is more or less just abstraction.
For example, according to how I understand these concepts, calling a method to do something would be declarative, whereas the implementation of the method is imperative (not necessarily, though? Just not declarative).
Therefore, it seems as if wherever you have declarative code, somewhere down the line it must rely on non-declarative code for implementation. Is this just the nature of it, or are there languages that are 100% declarative (something I can't even begin to conceptualize)?
Please correct me if my understanding of these concepts is off! Although I'm roughly halfway through a B.A. in Computer Science, I feel like I've only been taught so far to "type stuff so that the right stuff happens when you run the code."
Thanks.
Declarative programming expresses the logic of a software component without outlining it's control flow. That methodology of calling functions (which is called functional programming - a sub-paradigm of declarative programming) you are talking about can be a bit confusing, especially when learning programming and probably learning a language like C/C++/Java. There are functional programming languages, such as Lisp and Haskell, that utilize the functional paradigm completely.
When just starting off, I wouldn't try to learn the implementations of those paradigms simultaneously. Instead I find it easiest to think of declarative languages as the highly expressive languages like CSS SQL. They describe WHAT should be done in plain English with the HOW abstracted away.

C - What should scripts do in programs [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
If I want to create a game in C with SDL for example, is there a reason of why I should use a scripting language like Lua with it (since alot of commercial games uses a scripting language)? I have heard that scripting languages often are faster to write and easier to read, but what should they do? (graphics? ai? input? etc).
They should interact with the various "programming primitives" that the native code implements. That is, the native code should only do enough to allow the scripts to function within the game (although "function" can sometimes mean speed-wise).
If that sounds cyclical... it is. There's no complete way to define at the beginning of development what responsibilities the native code will have as the project progresses.

What is the scope of C programming today? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I am a computer science student. I studied C, then came to C++[an object oriented one] and now Java[More Object Oriented]. My question is whether 'C' language is of any importance these days? Did I study it for the sake of studying the languages in the order in which they were developed so as to understand languages step by step?
Is there things that can be done only with C? What is it's scope?
The main scopes are:
drivers
operating systems
systems where performance is critical
small embedded systems (thanks Joachim)
C is still heavily used in situations where otherwise one would drop down to assembler, since it's one of the few structured languages to let users code that close to the hardware.
And a lot of what claims to be C++ code is C code with an OOP wrapper.

Can programming tasks be taken over by artificial intelligence? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I was reading an article earlier that suggests 1/3 of us are scared their job will be taken over by robots at some point. At first I was thinking (as robots have to be programmed as well) that we, as programmers, would be safe from this. That brought me to this question.
Would artificial intelligence be capable of performing (advanced) programming tasks or would they always be limited to the level they where programmed at?
What I mean by level is, for example, a scripting language as opposed to a programming language. (Would it be even possible for a scripting language to write and compile software in a programming language?)
This topic was put on hold because the answers would be based on opinions rather than facts. Just for clarity, I am expecting answers that are based on facts. An answer that simply says yes or no would be an opinion based answer, an answer that explains why is based on facts.
Okay, first of all, since you are dealing with the development of programs, it would be better suited to consider this a question based on Artificial Intelligence, rather than Robotics. It's much more simpler to develop programs to write other programs instead of developing a physical entity to type out a program.
AI has developed to such an extent, that simple games can be played much better than what normal humans can do: Wikipedia: Progress in AI.
As of now, development of complex programs is still out of the reach of AI, though it's not far off. Still, for the most part, AI may be used to assist human developers - since it's still not fully developed - rather than replace them altogether.

Resources