• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

procedural, concurrent, and OOP ?

 
Ranch Hand
Posts: 182
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
In Jobs Discussion, I seen C referred to as procedural and was a little confused. I thought that Java was OOP and that QBasic was procedural. Can anyone clarify OOP, procedural, and concurrent? I think I have some pre-misconceptions about the latter two.
 
Sheriff
Posts: 7001
6
Eclipse IDE Python C++ Debian Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The distinction refers to the main/only technique for doing things in each language. And there are a few more common groups that you don't mention, too. I'll try and summarize the distinctions:
1. 'procedural' A language whose main technique is the 'procedure call' (also known as 'function-call', 'subroutine' etc.) Flow of control generally proceeds from one statement to another, except when dispatched to a subroutine. Languages like BASIC, C, COBOL, FORTRAN, Pascal etc. are procedural.
2. 'object oriented'. A language which supports the notion of 'objects' - items containing both state (data) and operations ('methods'). Some people split this group into 'object-based' languages, which understand objects, but can't define new ones, and 'true object-oriented' languages which have techniques for defining and creating/destroying types (classes) of objects. Visual Basic and JavaScript are object-based, C++, Java, Smalltalk, Python etc. are object-oriented.
3. 'concurrent'. A concurrent language is one which has built-in support for doing more than one thing at a time. The exact mechanism for this is unimportant, although the concept of "threads" seems to be the most popular way to do this at the moment. Occam and Java are concurrent.
4. 'functional'. Not to be confused with procedural, although the name sounds similar. A functional language is one in which the only technique for doing things is the function call, and these function calls must not maintain state or have side effects other than the return value. This may seem limiting, but it does have advantages :- programs in functional languages are much easier to prove correct, and can run very well on parallel (multi-processor) hardware. ML and (theoretically) Lisp and Scheme are functional languages.
 
Steven YaegerII
Ranch Hand
Posts: 182
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Guess I wasn't that far off after all. I had never really known what concurrent was or ever even heard of functional.
Thanks Frank
reply
    Bookmark Topic Watch Topic
  • New Topic