 |
|
| Computers Forum Index » Computer Languages (Misc) » Data Flow languages and programming - Part I... |
|
Page 3 of 4 Goto page Previous 1, 2, 3, 4 Next |
|
| Author |
Message |
| Ray... |
Posted: Wed Oct 28, 2009 10:16 pm |
|
|
|
Guest
|
Pascal J. Bourguignon wrote:
Quote: Why should you care about the detail of the micro-instructions of your
MC6800? Cannot you write a specification for a microprocessor in two
lines? Let the system care about the details itself.
Problem: you have a few thousand binaries written for this
CPU that nobody produces anymore; you need to write software
that runs them in emulation.
No "two-line specification" is going to contain enough
information to allow you to write software that will emulate
that CPU sufficiently well that all these programs work.
Likewise, if your aim is to produce a C compiler, you will
need *ALL* of the specification of the C language as part
of your specification.
Likewise, if you need a stress analysis of the Eiffel Tower,
you will need a complete schematic of the tower - its parts,
their exact dimensions, and the way they fit together.
Specifications simpler than the problems they intend to
solve exist, certainly; but they incorporate, implicitly
or explicitly, additional information whose retrieval and
interpretation I know of no way to automate. If your
boss (or the salesguy) hands you a specification that
you must provide a program that does foo, he is relying
on you the human to know (or be able to find out) what
foo is and how foo is done. And that information, even
though he didn't provide it, is part of the specification
of the problem.
Bear |
|
|
| Back to top |
|
|
|
| Joshua Cranmer... |
Posted: Wed Oct 28, 2009 10:47 pm |
|
|
|
Guest
|
On 10/28/2009 11:44 AM, Pascal J. Bourguignon wrote:
Quote: Why should you care about the detail of the micro-instructions of your
MC6800? Cannot you write a specification for a microprocessor in two
lines? Let the system care about the details itself.
It's been two years since I last saw a MC6800 processor, so I don't
recall the exact semantics. But there are effectively around 100 or so
instructions (if you count different addressing modes as different
instructions). If you're trying to write an MC6800 emulator, you'll have
to have a pretty liberal definition of `line' to fit all of that in two
lines.
And the MC6800 is an 8-bit microprocessor designed in 1974. Any emulator
for a modern processor is going to be incredibly more complex. It sounds
like you're saying that I'd have a line somewhere that says "emulate an
XXX processor", but that doesn't cut it for an emulator's specification:
it's a circular definition. At some point, you have to enumerate the
specification of a processor's ISA, which easily takes pages. If you
don't wish to include that in the highest level count, include it in the
specification for the metacompiler that will have to compile the
"emulate" instruction.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth |
|
|
| Back to top |
|
|
|
| mike... |
Posted: Thu Oct 29, 2009 3:02 am |
|
|
|
Guest
|
In article <d44aa7fe-fab3-4f04-a379-bba9d37c5ca9
at (no spam) r5g2000yqb.googlegroups.com>, robertwessel2 at (no spam) yahoo.com says...
Quote: On Oct 26, 5:22 pm, c... at (no spam) tiac.net (Richard Harter) wrote:
What do I mean by "turtles all the way up"? By this I mean the
thesis that the techniques and programming language concepts that
are used in the small can be extended indefinitely to programming
in the large. In other words if we use language X for 100 line
programs and 1000 line programs we can also use it for 1000000
line programs. We may have to add some extensions and new
features along the way, but we can increase the size of the
programs we write indefinitely using the same ideas.
p
The antithesis is that it isn't turtles all the way up, or at
least it shouldn't be turtles all the way up. That is, the kinds
of languages and programming technologies that we use in
large scale programming should be quite different from the kind
of languages used for programming in the small.
While this is perhaps true, it's completely unclear what we need to
successfully manage large projects. Sure a few things do help (like
strong type, memory safety, good support for interfaces), but those
also help on all but the smallest projects as well.
I think that most of the problems inherent in any large-scale
programming project result from the inherent 'fragility' of all
programming languages.
If you compare a large computing project with a large engineering
project there are clear similarities, but one very significant
difference is that almost any undetected error in code has the potential
to result, somewhere down the line, in catastrophic outcomes; whereas if
a nail is not quite hammered in as far as specified or if a light
fitting (or even a window) is put in the wrong place then the building
usually remains safe, functional, and fit for purpose.
If someone has some ideas about a programming language/paradigm that is
fault-resistant, not only in the sense that it reduces the number of
actual bugs and/or errors produced, but also in the sense that many bugs
have no significant effect on function and behaviour then large-scale
projects may be a lot easier to manage.
Whether this will ever be a possibility remains, in my opinion, unknown
to date.
Mike |
|
|
| Back to top |
|
|
|
| Richard Heathfield... |
Posted: Thu Oct 29, 2009 5:17 am |
|
|
|
Guest
|
In <08799c89-fa49-4efb-9a9e-b5384fe96c55 at (no spam) 13g2000prl.googlegroups.com>,
user923005 wrote:
Quote: On Oct 28, 10:54 am, c... at (no spam) tiac.net (Richard Harter) wrote:
<snip>
Quote: However his
subsequent paragraph had no significant connection to his
observation.
Perhaps the connection was only clear to me.
Not so. It is perfectly obvious what your point was, and it could be
missed only by someone determined to miss it.
The whole "turtles" analogy is flawed. The alphabet analogy is much
better. It's /letters/ all the way down.
--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh at (no spam)
"Usenet is a strange place" - dmr 29 July 1999
Sig line vacant - apply within |
|
|
| Back to top |
|
|
|
| Nick Keighley... |
Posted: Thu Oct 29, 2009 11:38 am |
|
|
|
Guest
|
On 26 Oct, 22:22, c... at (no spam) tiac.net (Richard Harter) wrote:
Quote: WHAT ARE DATA FLOW LANGUAGES?
Some significant advantages:
* Concurrency and parallelism are natural. Code can be
distributed between cores and even across networks. Many of the
problems associated with threads disappear.
hurrah!
Quote: Some significant disadvantages:
* The mindset of data flow programming is unfamiliar to most
professional programmers. Most dataflow programming languages
are niche languages used by non-professional programer users.
didn't we use to design programs with data flow diagrams then convert
them into procedural programs...
--
Nick keighley |
|
|
| Back to top |
|
|
|
| Nick Keighley... |
Posted: Thu Oct 29, 2009 12:00 pm |
|
|
|
Guest
|
On 28 Oct, 19:34, user923005 <dcor... at (no spam) connx.com> wrote:
Quote: On Oct 28, 10:54 am, c... at (no spam) tiac.net (Richard Harter) wrote:
On Wed, 28 Oct 2009 17:29:04 +0100, "Dmitry A. Kazakov"
mail... at (no spam) dmitry-kazakov.de> wrote:
On Wed, 28 Oct 2009 16:08:06 GMT, Richard Harter wrote:
On Mon, 26 Oct 2009 17:04:36 -0700 (PDT), user923005
dcor... at (no spam) connx.com> wrote:
On Oct 26, 3:22=A0pm, c... at (no spam) tiac.net (Richard Harter) wrote:
Quote: SHOULD IT BE TURTLES ALL THE WAY UP?
In the famous anecdote, the little old lady replies to the noted
philosopher, "It's turtles all the way down." =A0When it comes to
writing software many writers on software design and many
programming language creators seem to believe that it is turtles
all the way up.
What do I mean by "turtles all the way up"? =A0By this I mean the
thesis that the techniques and programming language concepts that
are used in the small can be extended indefinitely to programming
in the large. =A0In other words if we use language X for 100 line
programs and 1000 line programs we can also use it for 1000000
line programs. =A0We may have to add some extensions and new
features along the way, but we can increase the size of the
programs we write indefinitely using the same ideas.
I've never seen a convincing argument to show that this is wrong.
We can use a 26 letter alphabet to make little words.
snip
We can use a 26 letter alphabet to make entire libraries.
Why isn't the same thing true of programming languages?
you don't make a library out of letters. Your own analogy demonstrates
that lack of scalability of the letter.
Quote: It is. We can use 1's and 0's to build software.
Yes, but that is the machine language.
right so we change the unit as we scale
Quote: When communicating ideas about
software to other people we are using natural languages.
I use programming languages.
There was the guy that explained to me that a telecommunications
switch was "just shift registers!". Whilst probably true was
unhelpful. This lack of appreciation for scale and distrust of
abstraction seems very odd in field that is all about abstraction.
Boolean algebra is much easier if you just write out the wave equation
for the electron and the hole.
Quote: Similarly human brains are made out of atoms.
quarks! It's quarks all the way down!
<snip>
Quote: The argument is that it is not clear what a hierarchy of programming
languages adds.
You are missing the point. He made an observation and called it
an argument.
I made an analogy and never called it an argument.
It wasn't. He did go on to question whether a
hierarchy of programming languages had value.
I went on to say
you did not. I mean really, where did you say that?
Quote: that we do the same thing with programming
langauges.
and then you go on to demonstrate that we don't...
Quote: For instance, in C, I will write simple functions to build
libraries.
expession -> function -> library
that's three layers of abstraction right there
Quote: I will use libraries to build filter programs. I will
pipe filter programs in a chain to accomplish complicated tasks.
ooo look! data flow programming!
Quote: This
is a metaphor that works pretty well.
it does but the opposite way from what you wanted.
Don't get me wrong I've spent too much time debugging designs encoded
in arcane graphical formats that then have to be debugged all over
again when converted to code (generate the code you say? why not just
write the code?) to be a fan of graphical representations; but the
fact is we do need higher level things to reasons with than raw C. And
we have them.
Quote: A lot of computer science seems to me to be largely mythology.
What I mean by that is (for instance)
the notion that OO programming will allow less expensive complicated
systems. It is possible to write complicated systems in OO languages
for a reasonable cost. But empirical studies have shown that the cost
is not lower than writing the same systems in a simple language like C
[1]. So now people are trying other paradigms like Aspect Oriented
programming. I am not saying that alternative paradigms are bad. In
fact, I program almost exclusively in C++ and love the OO metaphor. I
am just saying that a change in paradigm doesn't usually change much.
For instance, in C++, by creating objects we do NOT reduce
complexity. We only hide it.
<snip>
--
Nick Keighley
"Object-oriented programming is an exceptionally bad idea
that could only have originated in California."
Dijkstra quote: |
|
|
| Back to top |
|
|
|
| Nick Keighley... |
Posted: Thu Oct 29, 2009 12:10 pm |
|
|
|
Guest
|
On 27 Oct, 08:55, "Dmitry A. Kazakov" <mail... at (no spam) dmitry-kazakov.de>
wrote:
Quote: * Unmaintainable code. Look at large data flow programs (e.g. in DiaDem,
Simulink, LabView). It is impossible to use reasonable software processes
on them. How to compare two diagrams?
convert it to a textual represention the run diff on it. I'm not
saying it's trivial but I don't think its intractable either.
Quote: When are they semantically equivalent?
when they are the same. Code gives you exactly the same problem. The
pretty picture is only a representaion! You're programmer's for
Turing's sake! What else do you do apart from manipulate
representations?
Quote: How do I validate a diagram?
there were tools that could do this in the 80s
Quote: How to search for anything in a diagram?
solved in the 80s
what's the quote about being condemed to repeat it?
I don't *like* graphical design method-ologies but I don't pretend
they can't do things that they can do!
Dammit I'm running out exclamation marks??
Quote: Another example of this problem is represented by GUI libraries,
which are mostly event controlled. Practically none of them can be easily
used in multitasking environment. It is a horror to debug hangups or
generators in messages routed from one messages loop to another. And the
proposal is to build *everything* this way. Shudder.
though you may have a point here
--
Nick Keighley
As our circle of knowledge expands,
so does the circumference of darkness surrounding it.
(Albert Einstein) |
|
|
| Back to top |
|
|
|
| Nick Keighley... |
Posted: Thu Oct 29, 2009 12:49 pm |
|
|
|
Guest
|
On 28 Oct, 15:44, p... at (no spam) informatimago.com (Pascal J. Bourguignon)
wrote:
Quote: Joshua Cranmer <Pidgeo... at (no spam) verizon.invalid> writes:
On 10/28/2009 12:32 AM, Pascal J. Bourguignon wrote:
Can you not specify all programming problem in less that a few
thousands of lines of specification?
Well, you can always write more detailed specifications, but I can
assure you that sales peoples will always be able to put the whole
specifications of your software on a 2-page booklet.
The PDF 1.6 specification was, if I recall correctly, approximately
1400 pages of text. My draft of C++0 weighs in at a whopping 1314
pages. The JVM spec is smaller, at only 542 pages. The full x86_64 ISA
comes in volumes; even the ancient MC6800 ISA took 40 pages or so to
explain.
Many specifications, to approach the degree of completeness required
for independent implementation, need to drag on for hundreds or
thousands of pages.
Why should you care about the detail of the micro-instructions of your
MC6800? Cannot you write a specification for a microprocessor in two
lines? Let the system care about the details itself.
talk to the Sparc and ARM people. They license their designs. I bet
they come to more than two lines. Oh, I forgot if they'd used Lisp
they be able to hide it all in one macro! |
|
|
| Back to top |
|
|
|
| Dmitry A. Kazakov... |
Posted: Thu Oct 29, 2009 12:52 pm |
|
|
|
Guest
|
On Thu, 29 Oct 2009 12:02:13 +1300, mike wrote:
Quote: If someone has some ideas about a programming language/paradigm that is
fault-resistant, not only in the sense that it reduces the number of
actual bugs and/or errors produced, but also in the sense that many bugs
have no significant effect on function and behaviour then large-scale
projects may be a lot easier to manage.
That is because the "physics" of the code is different. Small distances in
the normal space mean small powers, and also fewer things you can do (right
or wrong). A tiny piece of code can do a lot, this power is translated into
fragility.
Quote: Whether this will ever be a possibility remains, in my opinion, unknown
to date.
The evolution of programming languages slowly goes in the direction of
weakening the constructs deployed to accomplish given task (e.g. getting
rid of gotos, constraining operations per datatypes etc). "Least-energy
principle"...
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de |
|
|
| Back to top |
|
|
|
| Nick Keighley... |
Posted: Thu Oct 29, 2009 12:56 pm |
|
|
|
Guest
|
On 28 Oct, 23:02, mike <m.... at (no spam) irl.cri.replacethiswithnz> wrote:
Quote: I think that most of the problems inherent in any large-scale
programming project result from the inherent 'fragility' of all
programming languages.
If you compare a large computing project with a large engineering
project
large software projects aren't large engineering projects?
Quote: there are clear similarities, but one very significant
difference is that almost any undetected error in code has the potential
to result, somewhere down the line, in catastrophic outcomes; whereas if
a nail is not quite hammered in as far as specified or if a light
fitting (or even a window) is put in the wrong place then the building
usually remains safe, functional, and fit for purpose.
even civil engineers have their bad days
http://en.wikipedia.org/wiki/Hyatt_Regency_walkway_collapse
O-rings
<snip> |
|
|
| Back to top |
|
|
|
| Mok-Kong Shen... |
Posted: Thu Oct 29, 2009 2:02 pm |
|
|
|
Guest
|
mike wrote:
Quote: I think that most of the problems inherent in any large-scale
programming project result from the inherent 'fragility' of all
programming languages.
If you compare a large computing project with a large engineering
project there are clear similarities, but one very significant
difference is that almost any undetected error in code has the potential
to result, somewhere down the line, in catastrophic outcomes; whereas if
a nail is not quite hammered in as far as specified or if a light
fitting (or even a window) is put in the wrong place then the building
usually remains safe, functional, and fit for purpose.
If someone has some ideas about a programming language/paradigm that is
fault-resistant, not only in the sense that it reduces the number of
actual bugs and/or errors produced, but also in the sense that many bugs
have no significant effect on function and behaviour then large-scale
projects may be a lot easier to manage.
Whether this will ever be a possibility remains, in my opinion, unknown
to date.
In engineering works there are "factors of safety" to take account
of variability of materials, unpredictability of actual loadings
and inaccuracies in construction etc. etc. In computing, analogous
has been done. For results for control of critical (including
in particular potentially dangerous) processes, one employs
double or triple hardware to take care of the possibility of
malfunction of hardware. As far as I know, in order to better
detect programmer errors, one similarly employs different and
independent teams of programmers to do the same job and then with
test cases to compare the results of the resulting programs.
However, if I don't err, this comparision is only done in the design
phase of the software and later only the work of one of the teams
is selected for practical application. A safer way, I think, would
have these presumably equivalent software (resulting from different
teams, employing preferably different programming languages and
environments) in actual production runs to always work parallelly
on multiple hardware (of possibly different types), so as to futher
reduce the risk of errors, since testing of software in the design
phase might not be thorough enough to uncover all errors that may be
present. Of course, errors could not be "absolutely" eradicated,
in accordance with Murphy's Law.
M. K. Shen |
|
|
| Back to top |
|
|
|
| robertwessel2 at (no spam) yahoo.com... |
Posted: Thu Oct 29, 2009 3:19 pm |
|
|
|
Guest
|
On Oct 29, 5:02 am, Mok-Kong Shen <mok-kong.s... at (no spam) t-online.de> wrote:
Quote: In engineering works there are "factors of safety" to take account
of variability of materials, unpredictability of actual loadings
and inaccuracies in construction etc. etc. In computing, analogous
has been done. For results for control of critical (including
in particular potentially dangerous) processes, one employs
double or triple hardware to take care of the possibility of
malfunction of hardware. As far as I know, in order to better
detect programmer errors, one similarly employs different and
independent teams of programmers to do the same job and then with
test cases to compare the results of the resulting programs.
However, if I don't err, this comparision is only done in the design
phase of the software and later only the work of one of the teams
is selected for practical application. A safer way, I think, would
have these presumably equivalent software (resulting from different
teams, employing preferably different programming languages and
environments) in actual production runs to always work parallelly
on multiple hardware (of possibly different types), so as to futher
reduce the risk of errors, since testing of software in the design
phase might not be thorough enough to uncover all errors that may be
present. Of course, errors could not be "absolutely" eradicated,
in accordance with Murphy's Law.
This is sometime done. For example, the Space Shuttle has five
(identical) computers in its flight control system. Four run the full
mission software in a parallel/lockstepped and redundant
configuration, while the fifth runs a basic version of the flight
control software developed independently from the main software
group. The fifth system has enough function to fly the Shuttle, but
nothing else.
Note that they did not choose to implement different hardware for the
fifth system (it's very difficult to use heterogeneous hardware within
a lockstepped group, so that's not really an option for the first
four). While in theory different hardware for the fifth system might
improve reliability some, the systems used are extremely well tested
(and actually quite old - part of why they're so well tested), and
since they're running different software, a latent hardware bug (as
opposed to a fault, which would only take out a single computer) is
unlikely to hit both the primary group of four and the fifth system
simultaneously. It is, as always, a tradeoff.
Obviously the cost for this sort of approach is very high.
Also, this sort of parallel/independent development has been
demonstrated to *not* be as independent as one would like. While many
of the low level details of the independent implementations do show
fairly little correlation, several studies (including one by NASA,
IIRC) have found that there is a significant tendency for independent
development groups to make similar errors interpreting specifications
and making similar higher level implementation decisions. This has
been noticed by the two "independent" systems having a surprising
number of parallel bugs. |
|
|
| Back to top |
|
|
|
| Ray... |
Posted: Thu Oct 29, 2009 9:16 pm |
|
|
|
Guest
|
robertwessel2 at (no spam) yahoo.com wrote:
Quote: Also, this sort of parallel/independent development has been
demonstrated to *not* be as independent as one would like. While many
of the low level details of the independent implementations do show
fairly little correlation, several studies (including one by NASA,
IIRC) have found that there is a significant tendency for independent
development groups to make similar errors interpreting specifications
and making similar higher level implementation decisions.
That seems to me to be likely the fault of those who wrote the
specification rather than those who were interpreting it.
Seriously, if people are reaching the *same* misinterpretation,
the flaw is in the document they're reading.
It's kind of like Fox News: Polls show that large percentages
of the people who watch it believe things that just aren't
true about, eg, the Iraq conflict. Even if you can't point
to a particular day, hour, and minute when they came out and
gave a straight-up provably-false lie as the truth, the fact
that their viewers believe the same set of false things at a
rate several times higher than the viewers of other news
programs tells you something important.
Bear |
|
|
| Back to top |
|
|
|
| Dmitry A. Kazakov... |
Posted: Thu Oct 29, 2009 10:15 pm |
|
|
|
Guest
|
On Thu, 29 Oct 2009 05:10:37 -0700 (PDT), Nick Keighley wrote:
Quote: On 27 Oct, 08:55, "Dmitry A. Kazakov" <mail... at (no spam) dmitry-kazakov.de
wrote:
* Unmaintainable code. Look at large data flow programs (e.g. in DiaDem,
Simulink, LabView). It is impossible to use reasonable software processes
on them. How to compare two diagrams?
convert it to a textual represention the run diff on it. I'm not
saying it's trivial but I don't think its intractable either.
Are pixel positions and sizes of the blocks relevant to the comparison?
( )
The very argument that a text form is somewhat better raises a suspicion
why not to use it from the start?
Quote: When are they semantically equivalent?
when they are the same.
Yes two programs are equivalent when they are...
Quote: Code gives you exactly the same problem.
Sure, but for a programmer it is easier to decide when he deals with text.
"Find 10 differences" is a game known for pictures, no for texts.
(I am not an expert in psychology, but it seems that abstract visual
information cannot be digested at a finely detailed level. Maybe it is a
fundamental problem. Maybe not. But so far text works at best. Look at the
younger generation, who read virtually nothing. They only watch. They have
got completely new gadgets (like mobile phones), my generation didn't have.
I.e. it was a fresh start. And what we see? SMS - naked texts reborn!)
Quote: How do I validate a diagram?
there were tools that could do this in the 80s
There was no LabView that time, and there is no such tools now... ( )
AFAIK, engineers designing models in Simulink, LabView etc, validate the
generated code. They do not the diagrams.
Quote: How to search for anything in a diagram?
solved in the 80s
Ah, that is maybe because there were only alphanumeric display device back
then? ( )
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de |
|
|
| Back to top |
|
|
|
| Richard Harter... |
Posted: Thu Oct 29, 2009 11:52 pm |
|
|
|
Guest
|
On Mon, 26 Oct 2009 17:04:36 -0700 (PDT), user923005
<dcorbit at (no spam) connx.com> wrote:
This really is tangential, but perhaps we can get it out of the
way.
Quote: I've never seen a convincing argument to show that this is wrong.
We can use a 26 letter alphabet to make little words.
We can use a 26 letter alphabet to make bigger words.
We can use a 26 letter alphabet to make little paragraphs.
We can use a 26 letter alphabet to make bigger paragraphs.
We can use a 26 letter alphabet to make little books.
We can use a 26 letter alphabet to make bigger books.
We can use a 26 letter alphabet to make entire libraries.
I shall begin with what appears to be a quibble but really isn't.
Of these seven statements all but the first two are false.
Paragraphs are made of sentences. In English text sentences
include a period at the end and initialization at the end. To
get the full range of normal English text you need upper and
lower case letters, digits, and a suite of punctuation
characters. To use the jargon of programming, you need the full
English language character set.
That is not all. You also need the rules for putting together
valid English prose, a dictionary of English words, and means to
add new words to that dictionary.
Is that all? No. A proper character set, composition rules, and
a dictionary will enable you to produce paragraphs. It does not
suffice for creating books. The text in books is on a two
dimensional surface that is partitioned into pages. The material
in the books does not go into that surface randomly. There are
rules for layout. What is more, these rules vary from book to
book. Finally books can contain graphical elements of various
sorts and there are rules for doing that.
What it comes down to is that you need a lot more than your 26
letters to make your paragraphs, books, and libraries. What is
more, further you go up the scale the more extra stuff you need.
I am confident you agree with the need, though you might feel
that it's just unimportant details. It's not.
So much for that. Let's get on to the juxtaposiion fallacy. I
don't recall the correct name of the fallacy offhand, but the
idea is to suggest a relationship by putting elements next to
each without ever establishing the relationship. It is a
rhetorical device for appearing to make an argument without
actually making it.
In your seven sentences there is an implicit suggestion that
there is a ladder of building blocks, i.e., we build words out of
letters, paragraphs out of words, books out of paragraphs, and
libraries out of books. There is a real problem with this idea.
Books can have a lot of different things in them that are not
paragraphs, indeed aren't even necessarily words. Examples
include indices, bibliographies, tables, footnotes, chapter
titles, illustrations, shaded text boxes, and graphs. Oh yes,
don't forget recipes and poems.
Quote:
Why isn't the same thing true of programming languages?
Now, I admit that if our tiny building blocks are poorly made, the
bigger building blocks become more and more fragile.
But that is true no matter which programming language we use to build
the smallest blocks. And it is always a tragic mistake to try to make
one big giant block that does it all (Forth metaphor is not an
exception because the mega word comes from its babies).
I also don't think it matters which direction we build the turtles, as
long as they make it from top to bottom.
And here is where the fallacy has been used. The argument uses
the implied analogy to a fallacious model of natural language
texts. There is a double fault here. The first is the smuggling
in of a faulty model of natural language texts. The second is
the drawing of an analogy without establishing whether it is
appropriate.
Don't think I didn' see the connection you were suggesting. What
I am saying is that your argument wasn't even close to being
legitimate.
BTW, All of that said, none of this has anything to do with
whether data flow languages are a good idea.
Richard Harter, cri at (no spam) tiac.net
http://home.tiac.net/~cri, http://www.varinoma.com
Kafka wasn't an author;
Kafka was a prophet! |
|
|
| Back to top |
|
|
|
|
|
All times are GMT
The time now is Wed Dec 09, 2009 5:45 am
|
|