Top 10 Programming Language to learn in 2023

Are you a programming enthusiast looking to stay ahead of the curve in 2023? With the ever-evolving tech landscape, keeping up with the Best Programming Language to learn can be a daunting task. Fear not, as we have compiled a list of the top 10 Programming Languages that you should consider learning in 2023. Python: This versatile language continues to dominate in 2023, with its ease of use, readability, and a vast library of modules. JavaScript: As web development grows increasingly popular, JavaScript remains a crucial player, with its ability to create dynamic and interactive web pages. Java: This language has stood the test of time and remains a popular choice for enterprise software development. C++: A staple in the gaming and systems development industries, C++ offers exceptional performance and memory management. Swift: Apple's preferred language for iOS app development, Swift continues to grow in popularity with its simplicity and reliability. R: As data science and machin

CISC and RISC Computers


Why CISC?

          Compiler simplification?
         Disputed…
         Complex machine instructions harder to exploit
         Optimization more difficult
          Smaller programs?
         Program takes up less memory but…
         Memory is now cheap
         May not occupy less bits, just look shorter in symbolic form
          More instructions require longer op-codes
          Register references require fewer bits
          Faster programs?
         Bias towards use of simpler instructions
         More complex control unit
         Microprogram control store larger
         thus simple instructions take longer to execute
         It is far from clear that CISC is the appropriate solution

CISC Characteristics

          A large number of instructions-typically from 100 to 250 instructions
          Some instructions that perform specialized tasks and are used frequently
          A large variety of addressing modes-typically from 5 to 20 different modes
          Variable-length instruction formats
          Instructions that manipulate operands in memory

RISC Characteristics

          One instruction per cycle
          Register to register operations
          Few, simple addressing modes
          Few, simple instruction formats
          Hardwired design (no microcode)
          Fixed instruction format, easily decoded instruction format
          More compile time/effort
          Relatively few instruction
          Memory access limited to load and store instruction
          Relatively large number of registers in processor unit
          Use of overlapped register windows to speed-up procedure call and return
          Efficient instruction pipeline
          Compiler support for efficient translation of HLL programs into machine language programs.
          E.g.: Sun SPARC, Berkeley RISC1

RISC vs CISC

          Not clear cut
          Many designs borrow from both philosophies
          e.g. PowerPC and Pentium II …….

The Next Step - RISCReduced Instruction Set Computer

  Key features

         Large number of general purpose registers
         or use of compiler technology to optimize register use
         Limited and simple instruction set
         Emphasis on optimising the instruction pipeline
RISC VS CISC

RISC VS CISC


Advantages of CISC

          Microprogramming is as easy as assembly language to implement and much less expensive than hardwiring a unit
          The ease of microcoding new instructions allowed the designers to make CISC machines upwardly compatible – a new computer could run the same programs as earlier computers because the new computer would contain a superset of instructions of the earlier computers.
          As each instruction became more capable, fewer instructions could be used to implement a given task. This made more efficient use of the relatively slow main memory.
          Because microprogram instruction sets can be written to match the constructions of high-level languages, the compiler does not have to be as complicated.

Disadvantages of CISC

          Earlier generations of a processor family were generally contained as a subset in every new version- so instruction set and chip hardware become more complex with each generation of computers.
          So that as many instructions as possible could be stored in memory with the least possible wasted space, individual instructions could be of almost any length – this means that different  instructions will take different amount of clock time to execute, slowing down the overall performance of the machine.
          Many specialized instructions are not used frequently enough to justify their existence – approximately only 20% of the available instructions are used in a typical program.
          CISC instructions typically se the condition codes as a side effect of the instruction. Not only does setting the condition codes take time, but programmers have to remember to examine the condition code bits before a subsequent instruction changes them.

Advantages of RISC

          Speedà Since a simplified instruction set allows for a pipelined, superscalar design RISC processors often achieve 2-4 times the performance of CISC processors using comparable semiconductor technology and the same clock rates.
          Simpler hardware à Because the instruction set of a RISC processor is so simple, it uses up much less chip space; extra functions, such as memory management units or floating point arithmetic units, can also be placed on the same chip. Smaller chips allow a semiconductor manufacture to place more parts on a single silicon wafer, which can lower the per-chip cost dramatically.
          Short design cycle à Since RISC processors are simpler than corresponding CISC processors, they be designed  more quickly, and can take advantage of other technological developments sooner than corresponding CISC designs, leading to greater leaps in performance between generations.

Disadvantages of RISC

          Code Quality àThe performance of a RISC processor depends greatly on the code that it is executing. If the programmer (or compiler) does a poor job of instruction scheduling, the processor can spend quite a bit of time stalling-waiting for the result of one instruction before it can proceed with a subsequent instruction.
          Debugging à Unfortunately, instruction scheduling can make debugging difficult. If scheduling (and other optimizations) is turned off, the machine-language instructions show a clear connection with their corresponding lines of source. Many RISC programmers debug their code in an un-optimized, unscheduled form and then turn on the scheduler and hope that the program continues to work in the same way.


Comments

Popular posts from this blog

C program to Find Cartesian Product of Two Sets | C programming

Array in C Programming | C Programming

What is System? | SAD