Jump to content

New Cluster "Constant"


Recommended Posts

A cluster is a collection of variables. A collection of variables is not a "constant". Is it within the rights of NI and the LV community at large to assign a different (and contradictory) meaning to a term that has already been well defined in the field of math and sciences for centuries? I would have thought someone at NI would have had a similar concern.

Link to comment

A cluster is a collection of variables. A collection of variables is not a "constant". Is it within the rights of NI and the LV community at large to assign a different (and contradictory) meaning to a term that has already been well defined in the field of math and sciences for centuries? I would have thought someone at NI would have had a similar concern.

I am pretty sure NI reserve the right to do what they like! :)

Anyways, this is software, not maths or science.

I don't know if the term is defined for software, but from looking at wiki the general definition seems to be a like-minded grouping of 'things'.

I can't see why those 'things' can't be constants or variables.

But it wouldn't be the first time there is differing terminology wrt to other languages, and this has come up before on the forums.

Link to comment

I am pretty sure NI reserve the right to do what they like! :)

Anyways, this is software, not maths or science.

I don't know if the term is defined for software, but from looking at wiki the general definition seems to be a like-minded grouping of 'things'.

I can't see why those 'things' can't be constants or variables.

But it wouldn't be the first time there is differing terminology wrt to other languages, and this has come up before on the forums.

Software is science. At least I hope most of us think so. I certainly like to think so. At least my brain feels like it at the end of the day.

The wiki article talks about clusters. I'm not talking about clusters. I'm talking about constants. From the Wiki on constants: " Constant (programming), a name for a value that, unlike a variable, cannot be reassociated with a different value".

I thought in LV at least, a constant was something that was fixed at compile time - with a cluster constant is. The constant does not ever change, only the data you take from it to other parts of your application can change it (to me it's the wire that is the "variable", not the elements of the cluster)

OK. Makes sense. Sort of. :unsure:

Link to comment

Software is science.

Sorry, I when I think of science, I think of the general/natural sciences, and that is what I was referring to.

I think of software separately, but you are very correct that software is a science.

The wiki article talks about clusters. I'm not talking about clusters. I'm talking about constants. From the Wiki on constants: " Constant (programming), a name for a value that, unlike a variable, cannot be reassociated with a different value".

Well, technically you were are talking one in relation to the other, but either way, my point is still that same.

I think the terminology is fine, as in LabVIEW you can define a cluster on a BD as a constant whereby that data cannot be re associated with a different value.

Link to comment

Sorry, I when I think of science, I think of the general/natural sciences, and that is what I was referring to.

I think of software separately, but you are very correct that software is a science.

Well, technically you were are talking one in relation to the other, but either way, my point is still that same.

I think the terminology is fine, as in LabVIEW you can define a cluster on a BD as a constant whereby that data cannot be re associated with a different value.

I feel like we are starting to split hairs over the meaning of a word. Lot of good answers, though.

I'm glad this didn't dive into a "it all depends on what the meaning of the word 'is' is" or "constants in LabVIEW are a SCAM!" discussion. :)

Thanks everyone for your input.

Edited by PaulG.
Link to comment

Variables don't exist in dataflow. Even wires aren't variables; once a value has been "sent down a wire" that value doesn't change... ever. It is more accurate to think of everything as a constant.

See this conversation I had with Evil AQ last September.

(Constants aren't the scam... variables are. ;) )

Link to comment

Variables don't exist in dataflow. Even wires aren't variables; once a value has been "sent down a wire" that value doesn't change... ever. It is more accurate to think of everything as a constant.

See this conversation I had with Evil AQ last September.

(Constants aren't the scam... variables are. ;) )

The most difficult concept I learned in C were pointers. I was still fairly knew at LabVIEW at the time and I wish my instructor just would have said: "a pointer is like a reference in LabVIEW". After all these years my understanding of the two is the same. I agree with you. The terms "pointers" and "references" are used interchangably.

Link to comment

After all these years my understanding of the two is the same. I agree with you. The terms "pointers" and "references" are used interchangably.

Yeah, they are often used interchangably, especially by those of us who don't regularly do low level programming. Since that post I have come to understand what AQ was talking about. My confusion was based on mixing grammar. I used "pointer" and "reference" as adjectives, calling anything that points to something else a pointer, and anything that "refers to" something else a reference. "Points to" and "refers to" are mostly synonomous (afaik) in programming, so it follows that "pointer" and "reference" are synonomous. AQ was using "pointer" as a noun, and it has a more concrete meaning in programming than what I was using. Some of the subtle differences between them are:

*All pointers are references. Not all references are pointers.

*A pointer is a data structure that contains a memory address. They generally allow much lower level control over the contents of memory. For example, pointer arithmatic can be used to access memory registers near the one the pointer actually points to.

*A reference is an abstraction that doesn't have any meaning in and of itself. It could be a memory address, it could be a key in lookup table, it could be an array index, etc. Because a reference has no inherent meaning, reference arithmatic is equally meaningless.

*References often have additional protections built into them that aren't available to pointers, such as reference counting to prevent the memory from being deallocated or semaphores to lock a value during read-modify-write operations.

So when AQ said, "We fully support references. We do not support pointers at all." I now know what he meant. My initial post used incorrect terminology.

  • Like 1
Link to comment

Yeah, they are often used interchangably, especially by those of us who don't regularly do low level programming. Since that post I have come to understand what AQ was talking about. My confusion was based on mixing grammar. I used "pointer" and "reference" as adjectives, calling anything that points to something else a pointer, and anything that "refers to" something else a reference. "Points to" and "refers to" are mostly synonomous (afaik) in programming, so it follows that "pointer" and "reference" are synonomous. AQ was using "pointer" as a noun, and it has a more concrete meaning in programming than what I was using. Some of the subtle differences between them are:

*All pointers are references. Not all references are pointers.

*A pointer is a data structure that contains a memory address. They generally allow much lower level control over the contents of memory. For example, pointer arithmatic can be used to access memory registers near the one the pointer actually points to.

*A reference is an abstraction that doesn't have any meaning in and of itself. It could be a memory address, it could be a key in lookup table, it could be an array index, etc. Because a reference has no inherent meaning, reference arithmatic is equally meaningless.

*References often have additional protections built into them that aren't available to pointers, such as reference counting to prevent the memory from being deallocated or semaphores to lock a value during read-modify-write operations.

So when AQ said, "We fully support references. We do not support pointers at all." I now know what he meant. My initial post used incorrect terminology.

My first exposure to references was in OS theory for VMS. A File refernce is something we all use but there is a lot behind the file reference. The folowing may differn in Windows but this is how it went.

When we open a file, the OS has to do a lot of work to get it open in our behalf. All of the details about that file are stored in a data struture defined by the OS that tells us where on the disk the file is, if it s open, how it is opened (write protect) etc. These where called a FAB File Atribute Block. Somewhere inside that structure was a pointer to another sturure called a RAB Record Attribute Block that would be used to map physical memory to the proper sectors on the disk.

The pointer could take two forms dirrect or indirect. A dirrect pointer held the Virtual address of the first byte/word of of the FAB. An indirect pointer would hold the address where the address of the data structure was located.

So as I understand them (just sharing notes) when a pointer (direct or indirect) is used to gain access to a resource (file I/O point, etc) it is commonly refered to as a reference.

again, just my 2 cents,

Ben

  • Like 1
Link to comment

Yeah, they are often used interchangably, especially by those of us who don't regularly do low level programming. Since that post I have come to understand what AQ was talking about. My confusion was based on mixing grammar. I used "pointer" and "reference" as adjectives, calling anything that points to something else a pointer, and anything that "refers to" something else a reference. "Points to" and "refers to" are mostly synonomous (afaik) in programming, so it follows that "pointer" and "reference" are synonomous. AQ was using "pointer" as a noun, and it has a more concrete meaning in programming than what I was using. Some of the subtle differences between them are:

*All pointers are references. Not all references are pointers.

*A pointer is a data structure that contains a memory address. They generally allow much lower level control over the contents of memory. For example, pointer arithmatic can be used to access memory registers near the one the pointer actually points to.

*A reference is an abstraction that doesn't have any meaning in and of itself. It could be a memory address, it could be a key in lookup table, it could be an array index, etc. Because a reference has no inherent meaning, reference arithmatic is equally meaningless.

*References often have additional protections built into them that aren't available to pointers, such as reference counting to prevent the memory from being deallocated or semaphores to lock a value during read-modify-write operations.

So when AQ said, "We fully support references. We do not support pointers at all." I now know what he meant. My initial post used incorrect terminology.

I'll have to go back and read your discussion with Q.

Thanks everyone for your great input.:worshippy:

Link to comment

A cluster is a collection of variables. A collection of variables is not a "constant". Is it within the rights of NI and the LV community at large to assign a different (and contradictory) meaning to a term that has already been well defined in the field of math and sciences for centuries? I would have thought someone at NI would have had a similar concern.

"The Gravitational Constant is a variable in my equation."

Variable does not mean necessarily changeable. It can mean just value. A cluster is a collection of values. Those values might not change. If they don't change, they are constants.

Link to comment

"The Gravitational Constant is a variable in my equation."

Variable does not mean necessarily changeable. It can mean just value. A cluster is a collection of values. Those values might not change. If they don't change, they are constants.

I think I got. A cluster is a data structure where that structure never changes, so in that respect it's a constant data type. The values inside the data type are irrelevant. But I think I'll stick with calling a cluster inside it's own VI a "clustersaursus".

I've worked for too many physicists. I'm starting to get paranoid. :unsure:

  • Like 1
Link to comment

paleolabviewlogists

:lol:

Don't they already exist? Every once in while somebody pops on the board with a question about how to update a LV version 3 vi to the current version. If that's not paleolabviewology then I don't know what is.

Link to comment

A cluster is a collection of variables. A collection of variables is not a "constant". Is it within the rights of NI and the LV community at large to assign a different (and contradictory) meaning to a term that has already been well defined in the field of math and sciences for centuries? I would have thought someone at NI would have had a similar concern.

IMHO every word, term, or name ever thought up by humans was made up by somebody sitting around a fire in an altered state of mind...:beer_mug:

http://www.youtube.com/watch?v=uWN9rTc08GU

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.