Programming Terms

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

XianForce
Chaos Rift Devotee
Chaos Rift Devotee
Posts: 767
Joined: Wed Oct 29, 2008 8:36 pm

Programming Terms

Post by XianForce »

Well I thought it might be useful to some to make a thread that has a list of programming terms and their definitions. So I'll start with a few, and you guys can add more, (unless an admin thinks this fails, which is very possible...) Also I am new to programming, if I make a mistake, point it out please, and I'll modify my post.

Please guys, if you post terms, please post the definitions for them also, Thanks!


Source Code: The "human-readable" format of your program. This is all the stuff you code that will later be compiled and linked.
Object File: This is the "computer readable" form, in binary code(i.e. all 1s and 0s)
Compile: The act of taking your source code to produce an object file.
Linking: After compiling, you can link the object files with libraries to create your executable file.
Compile Time Errors: Errors that occur when your are compiling.
Link Time Errors: Errors that occur when you are linking.
Run-Time Errors: Errors that occur when you are running the program, also referred to as "bugs".
Integrated Development Environment(IDE): Compiles and Links your program in one step. Some even have their own source code editor, so you never have to leave the environment through the entire development process.
Pre-processor:Goes through your source code and looks for the '#' symbol. This tells the Pre-processor that it needs to do something, and with the highly known '#include' it tells the pre-processor that the following is a file that needs to be inserted there.
Constant:A type of variable, this type of variable must be initiated when stated, because it cannot be given a new value at a later time. This is in a way like the solution to '#define'. It takes the place of #define since #define is outdated, and it supposedly helps keep more bugs out.

Well that's all I'm going to put in at the moment, I might put in more later, but if you guys have some, feel free to post them =D, or corrections to mine, feel free to post those too.
Last edited by XianForce on Sat Nov 08, 2008 1:10 am, edited 2 times in total.
User avatar
Arce
Jealous Self-Righteous Prick
Jealous Self-Righteous Prick
Posts: 2153
Joined: Mon Jul 10, 2006 9:29 pm

Re: Programming Terms

Post by Arce »

Ha, mkay.

* Superclass, Parentclass
* Subclass, childclass
* scope
* heap, freestore
* overhead
* dynamic
* static
* overloaded
* overwritten
* composition
* inheritance
* encapsulation
* polymorphisms
* virtual
* constant
* operator
* pointer
* reference
* short circuiting
* unary, binary, and ternary operators
* function
* function signature
* declaration
* definition
* instance
* structured
* procedural
* low vs high level
* optimization
* recursion
* iteration
* increment
* decrement
* prefix
* postfix
* lvalue
* rvalue




All relevant programming terms you'll likely use if you ever talk about your code. Lemme know if somebody needs a definition (and are somehow incapable of googling. ;P)
<qpHalcy0n> decided to paint the office, now i'm high and my hands hurt
XianForce
Chaos Rift Devotee
Chaos Rift Devotee
Posts: 767
Joined: Wed Oct 29, 2008 8:36 pm

Re: Programming Terms

Post by XianForce »

EDIT: Whoops, probably shouldn't have quoted all that xD

I'll probably soon edit those with definitions into my post, I just got to stop being so lazy xD
User avatar
trufun202
Game Developer
Game Developer
Posts: 1105
Joined: Sun Sep 21, 2008 12:27 am
Location: Dallas, TX
Contact:

Re: Programming Terms

Post by trufun202 »

Arce, that's a damn fine list! Here's a few more off the top of my head:

* hash
* by ref vs. by val
* provider
* factory
* singleton
* iterator
* interface
* array
* jagged array
* linked list
* stack
* generics
-Chris

YouTube | Twitter | Rad Raygun

“REAL ARTISTS SHIP” - Steve Jobs
User avatar
MarauderIIC
Respected Programmer
Respected Programmer
Posts: 3406
Joined: Sat Jul 10, 2004 3:05 pm
Location: Maryland, USA

Re: Programming Terms

Post by MarauderIIC »

* Header file
* Template
* Queue
* Vector
* Object-oriented
I realized the moment I fell into the fissure that the book would not be destroyed as I had planned.
User avatar
trufun202
Game Developer
Game Developer
Posts: 1105
Joined: Sun Sep 21, 2008 12:27 am
Location: Dallas, TX
Contact:

Re: Programming Terms

Post by trufun202 »

just thought of one more:

* partial classes
-Chris

YouTube | Twitter | Rad Raygun

“REAL ARTISTS SHIP” - Steve Jobs
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Programming Terms

Post by avansc »

trufun202 wrote:Arce, that's a damn fine list! Here's a few more off the top of my head:

* hash : a one way function that is one to one only. used in cryptography extensivly, (every time you log onto windows it does not compare your pasword, but rather the hash of your password)
* by ref vs. by val : passing the memory address, vs passing the value in the memory address/
* provider : no idea
* factory : design pattern : an interface that can create objects
* singleton : design pattern : only one object in program, usually good for like input handlers, or graphics engines
* iterator : something that just loops through a list
* interface : a software abstraction that makes an object visible to the outside
* array : finite and constant length of consecutive objects
* jagged array : not applicable, i think its a C# term, i believe somthing about an array whose elements are arrays. this should not get a mention!
* linked list : a gold mine. a variable array
* stack : redundant, variant of linked list
* generics : appeared in the 70's, a really bad programming style(or rather not efficient)
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Programming Terms

Post by avansc »

Arce wrote:Ha, mkay.

* Superclass, Parentclass : dont need to know this, its balderdash, only study if you plan on java, C#
* Subclass, childclass : look one up
* scope : where and where not a variable can be seen in a program
* heap, freestore : just types of memory
* overhead : research Big Oh
* dynamic : can change
* static : cant change
* overloaded : a function with the same name that has duplicates where the parameters are changed, also this is a sign of a poorly designed class if you have to have this
* overwritten : im not sure thats a real CS term
* composition : oh boy...
* inheritance : if you are a sub class, you inherit all the member function from your super class
* encapsulation : one element of OO design, put all functions relates to an object withing the object class
* polymorphisms : ability for a object to completely change
* virtual : a function whose behavior can be over ridden
* constant : oh boy...
* operator : there are a bunch of them ++ += >> ? ....
* pointer : a variable that points to a spacific memory location
* reference : an object that referst to data stored somewhere else
* short circuiting : not sure how to explain, but its language defendant
* unary, binary, and ternary operators : oh boy..
* function : oh boy..
* function signature : A function's signature is a combination of the function's name; the number, order, and types of its parameters;
* declaration : oh boy..
* definition :
* instance
* structured
* procedural
* low vs high level
* optimization
* recursion : a function that calls it self. becareful, this f*cker will bite you in the ass
* iteration
* increment
* decrement
* prefix
* postfix
* lvalue
* rvalue




All relevant programming terms you'll likely use if you ever talk about your code. Lemme know if somebody needs a definition (and are somehow incapable of googling. ;P)
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Programming Terms

Post by avansc »

how about these?

black box testing
white box testing
Regression testing
distributed-memory architectures
deadlock
Euler tours and Hamilton cycles
Non-determinism
context-free grammars, and Turing machines
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
XianForce
Chaos Rift Devotee
Chaos Rift Devotee
Posts: 767
Joined: Wed Oct 29, 2008 8:36 pm

Re: Programming Terms

Post by XianForce »

Anyone added constants yet?
User avatar
sparda
Chaos Rift Junior
Chaos Rift Junior
Posts: 291
Joined: Tue Sep 23, 2008 3:54 pm

Re: Programming Terms

Post by sparda »

refactoring: aka, rewriting a lot of shit. This happens to me too much.
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Programming Terms

Post by avansc »

sparda wrote:refactoring: aka, rewriting a lot of shit. This happens to me too much.
actually refactoring is making code more readable by takeing functions and braking them up into smaller functions, while maintaining the original functionality.

if you refactor to much, that means you dont plan your code enough. im prone to it to.
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
User avatar
trufun202
Game Developer
Game Developer
Posts: 1105
Joined: Sun Sep 21, 2008 12:27 am
Location: Dallas, TX
Contact:

Re: Programming Terms

Post by trufun202 »

Okay, I feel like an ass, but I feel that I have to reply to a few of your comments.

I think this thread can be a powerful resource, so I want to make sure that we're giving things a fair analysis... :)
avansc wrote: * jagged array : not applicable, i think its a C# term, i believe somthing about an array whose elements are arrays. this should not get a mention!
Not applicable? This thread is for programming terms, right? As you mentioned, jagged arrays are essentially arrays of arrays. Traditionally 2 dimensional arrays are "rectangular," with a fixed number of rows and columns. Jagged arrays allow for each row to have a varying number of columns per row, and are natively supported by several languages, like Java, C#, and even Javascript.
avansc wrote: * linked list : a gold mine. a variable array
Not to mention, dynamic memory allocation. An array allocates an entire block of memory for the entire object. Linked lists allocate separate memory for each item in the list, allowing for more power and flexibility.
avansc wrote: * stack : redundant, variant of linked list
I guess this could be considered redundant, but the concept of Push() and Pop(), as well as FIFO and FILO, are separate from linked lists.
avansc wrote: * generics : appeared in the 70's, a really bad programming style(or rather not efficient)
I disagree. In the world of .NET and Java, generics are a major break through. Generics very reminiscent to Templates in C++. They allow for strongly typed lists and function parameters, without having to box and unbox.

Seriously, I hope my response didn't come off too harsh, just trying to give my .02. :mrgreen:
-Chris

YouTube | Twitter | Rad Raygun

“REAL ARTISTS SHIP” - Steve Jobs
User avatar
avansc
Respected Programmer
Respected Programmer
Posts: 1708
Joined: Sun Nov 02, 2008 6:29 pm

Re: Programming Terms

Post by avansc »

not at all. i respect your opinion and i'll give you my reasoning. i love when people voice their opinions because i might learn something from it. so never fret if you want to tell me something you think i might be wrong about. i'll listen.

no to justify my statements.
avansc wrote:* jagged array : not applicable, i think its a C# term, i believe somthing about an array whose elements are arrays. this should not get a mention!

Not applicable? This thread is for programming terms, right? As you mentioned, jagged arrays are essentially arrays of arrays. Traditionally 2 dimensional arrays are "rectangular," with a fixed number of rows and columns. Jagged arrays allow for each row to have a varying number of columns per row, and are natively supported by several languages, like Java, C#, and even Javascript.
the reason i say its not applicable is because it is looked down on in industry, at least in the field i am in. for example, the first thing an interviewer will ask you is to write a piece of code, if you go and reference something like this they see sub par programmer. all that jagged arrays are, are linked lists with a data entry that is another linked list. making a jagged array is so easy and you should do it on your own because then you have control over the memory. Java, C# and variants have garbage collectors, but do a poor job. i will say thats it makes development faster. but by no means will i recommend it.

avansc wrote:* linked list : a gold mine. a variable array

Not to mention, dynamic memory allocation. An array allocates an entire block of memory for the entire object. Linked lists allocate separate memory for each item in the list, allowing for more power and flexibility.
yeah.. i thought mentioning that it is a gold mine would get the point accross. if i had to list all the functions of pointers here it would be 100 pages long.
if you really wanna know what makes pointers so powerful is that you can even point to a funtion. so you can use a pointer as if it were a function. and it surpases scope. i can copy functions out of classes and use them on object that have nothing to do with that class. i mean the pro's are endless. thus GOLD MINE


avansc wrote:* stack : redundant, variant of linked list

I guess this could be considered redundant, but the concept of Push() and Pop(), as well as FIFO and FILO, are separate from linked lists.
a linked list is just a type of data structure, and queues and stacks fall under that. push and pop are by no means separate from linked lists.
you allways pop from the top, but if its a queue you push from the end, and stack from the start.

avansc wrote:* generics : appeared in the 70's, a really bad programming style(or rather not efficient)

I disagree. In the world of .NET and Java, generics are a major break through. Generics very reminiscent to Templates in C++. They allow for strongly typed lists and function parameters, without having to box and unbox.
if you look at what i said, or rather not efficient, they make programs clunky and inefficient, i understand that many people use them and they are great for making things generic. but in the real world it just doesn't work like that. to be honest, i use a language called ObjecREXX (based on C), and C only. im not sure about other companies, but where i work. we have our own library of functions collected over the years. we use straight C and inline assembly, and with that we can do anything. you have to remember that most languges today are childern of C, so anything you see in java, C# Delphi, whatever, can be done (with more work) in C and it will most likely be 100 times faster, more stable. and 100% portable. (note : im not saying generics are not portable)
Some person, "I have a black belt in karate"
Dad, "Yea well I have a fan belt in street fighting"
XianForce
Chaos Rift Devotee
Chaos Rift Devotee
Posts: 767
Joined: Wed Oct 29, 2008 8:36 pm

Re: Programming Terms

Post by XianForce »

EDIT: Whoops, must've clicked submit/save twice.
Last edited by XianForce on Wed Nov 05, 2008 7:56 am, edited 1 time in total.
Post Reply