Wednesday, July 15, 2009

Jenis bahasa komputer

Aras rendah

1)Bahasa mesin

-Bahasa mesin (machine code) mempunyai arahan-arahan dalam bentuk bit yang sukar untuk difahami manusia.

Fungsi bahasa ini ialah menghantarkan signal bit melalui get logik, dan seterusnya mengawal input dan output perkakasan.


-Bahasa mesin atau kode mesin adalah satu-satunya bahasa komputer yang dapat langsung dipahami oleh CPU. Bahasa mesin ditulis dalam serangkaian bit-bit (bilangan-bilangan biner, yaitu bilangan yang hanya mempunyai angka 1 dan 0). Beberapa pola-pola bit disimpan dalam mikroprosesor sebagai kode operasi (opcode), yang berarti memerintahkan CPU melakukan operasi tertentu (misalnya operasi aritmetika atau pengaksesan memori), sementara pola-pola bit lain dapat menunjukkan suatu lokasi memori (memory address) tertentu, dan pola-pola bit lain dapat berarti sebuah bilangan. Bahasa lain diterjemahkan melalui interpreter atau kompiler ke dalam bahasa ini sebelum dieksekusi oleh CPU.

Bahasa rakitan adalah bahasa pemrograman tingkat rendah yang memberi julukan-julukan (mnemonics) pada operasi-operasi dalam daftar instruksi (isntruction set) komputer tersebut, agar program-program dalam komputer lebih mudah dimengerti manusia daripada sekumpulan angka-angka 1 dan 0.

2)Bahasa himpunan

-Bahasa himpunan ialah sebuah bahasa pengaturcaraan tahap rendah yang digunakan untuk mengaturcarakan komputer. Sebuah penghimpun digunakan untuk menterjemahkan bahasa himpunan kepada bahasa mesin yang boleh difahami oleh komputer. Penyahhimpun pula digunakan untuk membuat kerja yang sebaliknya.

Bahasa himpunan menggunakan simbol-simbol tertentu untuk mewakili sesuatu kod operasi, simbol-simbol ini dipanggil mnemonik. Bahasa himpunan untuk lain pengeluar menggunakan mnemonik yang berbeza.


Aras tinggi

1)Bahasa pengaturcaraan

-Bahasa pengaturcaraan atau bahasa kompulasi ialah teknik komunikasi piawai untuk menjelaskan arahan kepada komputer. Ia merupakan satu set peraturan sintaktik (syntactic) dan semantik (semantic) yang digunakan untuk menghasilkan sebuah program komputer. Bahasa pengaturcaraan membenarkan pengaturcara (Programmer) menspesifikasikan secara terperinci perkara-perkara berikut:-

  • data yang diperlu diproses oleh komputer
  • bagaimana data disimpan atau dihantar
  • apa yang perlu dilakukan dalam pelbagai keadaan secara lebih mendalam (algoritma)

Pengenalan

Fungsi utama bahasa pengaturcaraan ialah untuk membenarkan Juruaturcara menyampaikan hasratnya bagi proses perkomputeran, dengan lebih mudah berbanding dengan apa yang mereka boleh lakukan dengan Bahasa Tahap Rendah atau Kod Mesin. Disebabkan tujuan ini, bahasa pengaturcaraan secara amnya direkabentuk untuk menggunakan sintaks tahap tinggi, yang lebih mudah difahami oleh Juruaturcara. bahasa pengaturcaraan adalah peralatan yang penting bagi membantu Jurutera Perisian (Software Engineer) untuk menulis Aturcara(program) yang lebih baik dengan lebih cepat.

Pemahaman terhadap bahasa pengaturcaraan adalah penting bagi mereka yang mendalami bidang Sains Komputer. Ini adalah kerana sebarang bentuk proses pengkomputeran dilakukan dengan Bahasa Komputer.

Dalam beberapa dekad kebelakangan ini, kebanyakan bahasa komputer telah diperkenalkan, bersilih-ganti, dan telah diubahsuai atau digabungkan. Walaupun terdapat beberapa percubaan untuk menghasilkan hanya satu bahasa pengaturcaraan universal yang boleh diguna untuk pelbagai tujuan, namun kebanyakan percubaan ini telah gagal. Beberapa bahasa pengaturcaraan lain masih diperlu kerana

  • penggunaannya yang berbeza dari segi penghasilan perisian perniagaan, sains, serta hobi.
  • Sesetengah bahasa pengaturcaraan tidak sesuai digunakan oleh pengguna baru, dan memerlukan kepakaran.
  • Juruaturcara mempunyai citarasa tersendiri
  • masa larian mungkin berbeza bagi aturcara yang *dilarikan pada pengawal mikro(microcontroller), dengan aturcara yang dilarikan pada Superkomputer.

*"dilarikan" di sini bermaksud melancarkan aturcara

Terdapat pelbagai bahasa dengan fungsi khusus dan digunakan untuk situasi tertentu:

Bahasa pengaturcaraan membolehkan atur cara komputer kurang bergantung pada mesin atau persekitaran tertentu sahaja. Ini kerana bahasa pengaturcaraaan ditukar menjadi kod mesin untuk mesin tertentu, dan bukan dilarikan secara terus oleh mesin. Ini merupakan tujuan utama penghasilan bahasa pengaturcaraan Fortran, (salah satu daripada bahasa pengaturcaraan yang pertama), iaitu ketidak-bergantungan terhadap mesin.

Terdapat 2 mekanisme yang digunakan untuk menterjemah sesuatu aturcara, yang ditulis dalam bahasa pengaturcaraan, kepada kod mesin tertentu pada komputer:

  • Mekanisme kompilasi
  • Mekanisme Penterjemah

Ciri-ciri bahasa pengaturcaraan

Setiap bahasa pengaturcaraan boleh digambarkan sebagai satu set spesifikasi yang formal dengan sintaks, perbendaharaan kata, dan maksud. Spesifikasi ini termasuk:

  • Data dan struktur data
  • Arahan dan Aliran Kawalan(Control Flow)
  • Mekanisme rujukan dan penggunaan semula
  • Falsafah reka bentuk

Kebanyakan bahasa yang diguna secara meluas (atau yang telah diguna dalam tempoh yang lama), mempunyai badan piawaian yang sering bermesyuarat untuk mencipta dan menerbit bahasa tersebut dengan definisi formal, dan membincangkan tentang mengembangkan atau menambah definisi yang sedia ada.


2)Bahasa penskripan

-Bahasa penskripan ialah bahasa pengaturcaraan komputer yang biasanya ditafsir dan boleh ditaip langsung dari papan kekunci. Sebuah penggunaan yang ditulis dengan menggunakan bahasa perskripan dipanggil sebuah "skrip". Ia adalah berbeza dengan atur cara kerana atur cara adalah kekal ditukarkan kepada fail perduaan boleh laksana sebelum dijalankan.

Antara kebaikan bahasa penskripan ialah skrip-skrip sesuatu penggunaan boleh diubah tanpa perlu dikompilkan atau ditafsirkan semula. Berbeza dengan atur cara yang dalam bentuk fail boleh laksana, yang perlu dikompil semula untuk melakukan sebarang perubahan bagi perilaku sesuatu program.

Terdapat banyak bahasa penskripan yang telah wujud pada hari ini, antaranya ialah Python, Perl, Tcl dan sebagainya.


3)Bahasa penanda

-Bahasa penanda ialah sejenis bahasa komputer yang digunakan untuk menggabungkan teks dan maklumat tambahan padanya, umpamyanya struktur, tataletak dan hiperpautan. HTML ialah contoh bahasa penanda yang paling popular pada masa ini.

Contoh

Dalam HTML, beberapa tag boleh digunakan untuk memformat teks. Dalam contoh berikut:

>Wikipedia> ialah sebuah >enskiklopedia bebas>.

...menghasilkan:

Wikipedia ialah sebuah enskiklopedia bebas.

Dalam contoh tadi, tag digunakan untuk menebalkan teks, manakala tag digunakan untuk mencondongkan teks. Dalam LaTeX pula, penanda berikut digunakan untuk menghasilkan output yang sama:

\textbf{Wikipedia} ialah sebuah \emph{enskiklopedia bebas}.


Bahasa komputer

Bahasa komputer adalah istilah lain yang lebih meluas bagi bahasa pengaturcaraan. Terdapat dua jenis bahasa komputer iaitu bahasa pengaturcaraan aras rendah dan bahasa pengaturcaraan aras tinggi.

Jenis bahasa komputer


Bahasa aras rendah

Bahasa komputer jenis ini adalah bahasa komputer yang tidak dapat difahami oleh manusia tetapi boleh difahami oleh komputer. Contohnya bahasa mesin (machine code) mempunyai arahan-arahan dalam bentuk bit yang sukar untuk difahami manusia.

Fungsi bahasa ini ialah menghantarkan signal bit melalui get logik, dan seterusnya mengawal input dan output perkakasan.


Bahasa aras tinggi

Bahasa komputer jenis ini adalah bahasa yang boleh difahami oleh manusia tetapi tidak oleh komputer. Ia dicipta untuk memudahkan kerja-kerja mengaturcara. Oleh kerana ia tidak difahami oleh komputer maka ia akan diterjemah kepada bahasa tahap rendah untuk dibaca oleh komputer dengan bantuan pengkompil atau pentafsir. Selalunya ia adalah dalam bentuk Bahasa Inggeris yang disingkatkan ataupun diubah suai.


Contoh-contoh bahasa komputer


  • Aras Rendah
  • Aras Tinggi


Pengaturcaraan(melayu)

Pengaturcaraan


Pengaturcaraan ialah kemahiran mengarang set arahan atau perintah yang kemudiannya boleh diterjemah dan dilaksanakan oleh komputer (atau mana-mana mesin elektronik). Biasanya kemahiran mengaturcara memerlukan pemikiran logik dan kebolehan mentaakul.

Dalam kejuruteraan perisian, pengaturcaraan dianggap sebagai satu tahap dalam proses pembangunan perisian.

Tuesday, July 14, 2009

Intorduction to software engineering

Intorduction to software engineering,challenges,process models,ect.

-Outline

~Nature of software projects

~Engineering approaches

~Software process

~Characteristics of a good process

~Waterfall model for development

~Other model

~Project planning

Nature of software system:

-Ubiquitious – Variety of application business, engineering and scientific application.

-Simple to complex, internal to public, single function to enterprise wide, one location to distributed, batch or real time, informational to mission critical.

Challenger in large projects:

-Developing large complex software application is very challenging.

~Effort intensive

~High cost

~Long development time

~Ehanging needs of users

-High risk or failure, user acceptance, performance, maintainability.

-Quite different from one-time program where authors and users are the same.

Successful software system:

-Software development project have not always been successful.

-What is successful software application?

~Development completed

~It is useful

~It is usable

~It is used

~cost effective and maintainability applied

Reasons for failure:

-Schedule slippage

-Cost over-runs

-Does not solve user’s problems

-Poor quality of software

-Poor maintainability

Why this happen?

-Ad-hoc software development

~No planning (e.g. no milestones difined)

~Deliverables to users not identified

~Poor understanding of users requirements

~No control overview (“no run out of topic”)

~Technical or incompletence of developers

~Poor understanding of cost and effort by both developer and user

Engineering: other displines

-Large projects common and successfully done

~Building bridges or dams

~Power plants

~Aircrafts, missiles

-“Engineering” a solutions

~To design, develop(build, fabricate) an artifact that meets specifications efficiently, cost effectively and ensuring qualities.

~Using scientific principles

Engineering…

-Requires well-defined approach-repeatable, predictable.

-Large projects require managing the project itseft.

~Manage projects, people, money(cost), equipment, schedule.

~Scale makes big difference, compare building hut, 2-storey house, large condominium or hotel.

Large project…

-Involve different types of people .

~Large building: architects, civil engineering, electrical engineering, worker(carpenters.ect)

-Continuous supervisors for quality assurance

~On site supervisors(check cement or steel quality,etc)

-Many deliverable: architecture plan, model, structure diagrams, electrical cabling layout ect.

-Standards, regulations, convenctions need to be followed.

-Step, milestones define and reviews are carried out, progress is visible.

Software projects.

-Sotfware is different from other products.

~Cost of production concentrated in development

~Maintenance consists of making corrections and enhancing or adding features

-Progress in development is difficult to measure

Apply engineering approach.

-Hence, planning and control even more important in software development.

-Engineering approach:

~Attempt to estimate cost or effort

~Plan and schedule work

~Involve user in defining requirements

~Identify stages in development

~Define clear milestones

~Schedule reviews both for control and quality

~Define deliverables

~Plan extensive testing

Job of software developer is difficult

-Dealing with users

~Ill-defined requirements

~Concern with ease-of-use and response time

-Dealing with technical people

~Concerned with coding, databased, file structures, ect

-Dealing with management

~Concerned with return on their investment

~Cost-benefits analysis

~Shcedule

Software process.

-Process contain of activities or steps to be carried out in a particular order

-Software process deals with both technical and management issues

-Consist of different types of prosess

-Process for software development.

Produce software as result.

~Multiple such processes may exist

~A project follow a particular process