# (Concrete) mathematical aspects of programming

It is often said that progamming is mathematics as it "makes use" of "discrete mathematics".

However, I would like to ask a more concrete question:

what are the concepts of a programming language (for instance, let us consider C, which is the only one I know) that have a "mathematical equivalent"?

I would say for example that arrays are "equivalent" in some sense to vectors of $R^{n}$ and that multidimensional arrays are equivalent to matrices (does this sound right?). But what is, say, the "equivalent" of a pointer (if any)?

• arrays and so on are just the very basic tools of programming. One of the bigger Chunks is Graph theory and basically everything in relation to what Turing did. Languages. Machines. Many more stuff. Everything mathematical concepts, that can be sorted under the main term “Discrete maths”, but that term is very broad. – Lukas Juhrich Jan 30 '15 at 21:55
• Also consider the logic gates which altogether allow the 1's and 0's to turn into something useful. Modulus is used in counting these and performing operations, and is also used to convert them into easier-to-read hexadecimal (mod 16) notation, which pops up from time to time when you run into a low-level error. – jm324354 Jan 30 '15 at 21:55
• @Lukas I should point out that I am interested in the basic tools of programming in this question and not in the great topics of computer science. – mathlearner Jan 30 '15 at 22:00
• Did it say programming? I am sorry, I must have misread. – Lukas Juhrich Jan 30 '15 at 22:01
• There are some here who know more about it than I do, but a fairly important analogy exists between the datatypes of a programming language and the functors of category theory in math. This is quite apparent in the Haskell programming language, but I believe the "equivalent" of a pointer (as you've asked) needs the machinery of category theory to explicate. – hardmath Jan 30 '15 at 22:05