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 9 years ago.
Improve this question
In this greak talk Value of Values, Rich talks about Place Oriented Programming (PLOP) which mutates data in place, lets call the languages with everything immutable or values as Value Oriented Programming (VLOP) for a moment. What languages other than Clojure are VLOP and how they implemented immutability (e.g. Structural Sharing, Plain Copy etc.) ?
"Value-oriented programming" is, more or less, just an alternative name for functional programming. For example, see here (1998) or here (2004), and most prominently, Andrew Appel's 1995 talk "Value-oriented programming, not object-oriented programming!" (which I cannot find online). The actual term can be traced back to at least 1981.
Unfortunately, the name never caught on, although Appel and other people have argued in the past that it is more accurate (and perhaps also more buzzword-compliant), and would have made functional programming an easier sell.
In other words, you are just looking for functional languages, of which there are many. Most famously, Haskell, ML (Ocaml and SML), Scheme.
Related
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 have read on some blogs that Go is a better system programming language and is going to replace C/C++. I am currently learning C++. So, I was wondering whether I should continue learning C++ or move to Go?
Go is designed for reliable, fast online services. It's the recommended language of Google App Engine. It does have general feature parity with C, plus additional scalability features. Perhaps, one day, it will be adopted for embedded programming and client-side applications, but that has yet to happen.
C is used in many, many application domains. No other language approaches its breadth of use. As a first language, though, it won't help you develop good habits.
C++ is a multi-paradigm language. It supports deep, generic metaprogramming. Many users of C++ are really using "embedded domain-specific languages" (EDSLs) where a library provides functionality defined within the C++ grammar. Go does not attempt to provide this depth, which is a Pandora's box of complexity.
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
What are applications of Objective-Z?
I have read about Objective-Z, but I cannot imagine to what it would be applied.
This question may be too broad, but I do not think that there are too many answers.
Objective-Z is an object-oriented extension to Z.
From here, you can get an overview of Objective-Z:
Object-Z extends Z by the addition of language constructs resembling the object-oriented paradigm, most notably, classes. Other object-oriented notions such as polymorphism and inheritance are also supported.
While not as popular as its base language Z, Object-Z has still received significant attention in the formal methods community, and research on aspects of the language are ongoing, including hybrid languages using Object-Z, tool support (e.g., through the Community Z Tools project) and refinement calculi.
For more information about the language and its uses, I would recommend visiting the Objective-Z homepage.
Its applications are similar to that of Z-notation - it is just an extension to a specification language.
If you really want to know about applications of Objective-Z, you can read this book.
I hope this helps, and good luck with Z.
Z is a specification language, meaning it is used to describe a system.
A quote from the Wikipedia article about Specification Languages states:
A specification language is a formal language in computer science used during systems analysis, requirements analysis and systems design to describe a system at a much higher level than a programming language, which is used to produce the executable code for a system.
The Z language is, according to this source,
a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general.
So, that is the application of Z.
I see that your question is not about Z, but about Objective-Z, but I hope that this answer can still be useful.
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 5 years ago.
Improve this question
My question is simple. Is the programming language Snobol4 still useful to provide a modern day solution for pattern matching, or has regex in other procedural languages pretty much wiped it out in application?
The pattern language is modeled on context free grammars,
with context sensitive extensions that provide full (type 0)
computational capabilities.
This is from an introduction originally written by Robert Dewar, creator of the SPITBOL implementation of SNOBOL-4. Since both references are in relatively new, and maintained libraries, I'd think that even though the pattern language is not part of, say, JavaSrcipt with its statistically many uses, or part of other modern languages, it might surprise users of REs in terms of speed and power.
That being said, SNOBOL-4 patterns have been criticized for leading to hard to understand programs, for using FENCE, not NOT (Farber? Gimpel?) and other phenomena that seem to have a come-back with Perl5 compatible "regular expressions", and ICU's. They, too, are rediscovering some effects of backtracking and anchors. R.E. Griswold, creator of SNOBOL-4, has later created the Icon programming language. It features generators and goal directed evaluation, thus taking backtracking to a level at which arguably search is more clearly expressed than one could do using the implications of complex patterns.
Insofar as this historic development is preceding today's "REs" growing in power, I'd say that SNOBOL-4 patterns offer something to the profession for evaluation, what to do again and what not to do again.
Say, do we need a BAL pattern in practice?
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I had the impression that there was a paper or article somewhere that claimed every sufficiently large project (not written in a Lisp variant) contained a poorly implemented Lisp interpreter. Google turns up nothing and a quick search of SO doesn't either. Is this something well known and documented somewhere I have forgotten, or just a figment of my imagination?
An actual document or link to such an article would be appreciated, if it exists. Otherwise, I will remove the question.
What Greenspun meant when he uttered this quip was that Lisp provides a great many foundational technologies for writing good software, and that programs written in other languages informally (and inferiorly) reproduce a number of them as they grow.
Yes, this claim is Greenspun's tenth rule (actually the only rule):
Any sufficiently complicated C or Fortran program contains an ad hoc,
informally-specified, bug-ridden, slow implementation of half of
Common Lisp.
It is making a valid point about the expressiveness of Lisp-style features (particularly its kind of macros). However, it isn't serious to the degree you would write a paper on it.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I'd really like to know what knowledge do I have to pursue in order to create scripting languages from the ground up, probably using C++, maybe python, for those are the languages I know.
I've searched through SO similar questions, but nothing comes close of what I'm asking. I intend to understand language processing, not natural language, but scripts that doesn't have the focus on human readability, only on functionality.
My first idea, without any technical background, was to create a scripting language that assimilates a bunch of logical statements and making use of advanced built-in algorithms like logical reasoning, pattern recognition, neural networks an statistical analysis, in order to provide lots of useful(or not) information.
Sorry my bad english, I learned online, as almost everything I cited here :D and that kinda explains my lack of theorical background.
Thanks in advance.
"From the ground up" is a quite relative term, especially if you consider Python as the implementation language. I think what you are looking for is the implementation of a domain specific language (DSL). Good starting points might be this book or this one. DSLs are a wide topic, so if you provide more details, we might be able to give better tips.