Laporan Programing Language Concept

PENGENALAN BAHASA PEMROGRAMAN

LAPORAN PRESENTASI SEMESTER GANJIL 2016/2017

Kelompok 8

 

Session 2 Syntax dan Semantic

  1. Syntax : aturan atau susunan kata” yang di mengerti oleh komputer sehingga menghasilkan output.
  2. Semantik: makna bahasa dari sebuah syntax
  3. Aturan general penulisan Syntax:
  • Nama kelas tidak boleh diambil dari Keyword (kata kunci) dari Bahasa pemrograman Java.
  • Nama kelas boleh menggunakan huruf, angka (0-9), garis bawah (underscore) dan symbol dollar ($), namun penggunaan garis bawah dan symbol lebih baik dihindari.
  • Nama kelas harus diawali dengan huruf besar (kapital).
  1. Aturan Syntax dalam Java:
  • Case Sensitive
  • Nama Class:semua nama class di Java harus diawali dengan huruf kapital dan jika nama class memiliki lebih dari satu kata, setiap kata harus diawali dengan huruf kapital.
  • Nama Program:nama program harus sama dengan nama class.
  • Nama Method:nama method harus diawali dengan huruf kecil.
  • public static void main(String[]: merupakan main() method yang akan di eksekusi sebagai main program

 

Session 3 Names, Binding, And Scopes

Pengertian Names: kata kata yang dapat dimengerti dan dieksekusi computer.

Aturan Names:

  • Panjang line=untuk java tidak ada batas
  • Case sensitive=dalam java huruf besar dan huruf kecil sudah berbeda
  • Special word=keyword yang hanya terbatas pada suatu context

Cnth:while,void,transient,switch,dll

  • Special character=java memiliki beberapa special chara
  • Seperti:if you are using a single character value, you will use the primitive char type

Arti Bindings: menghubungkan library (linker) dengan aplikasi (kode).

Binding juga dapat menghubungkan antara variable dan value.

Di dalam binding, terdapat binding time. Binding time adalah waktu dimana binding sedang terjadi.

Binding Times:

  • Language design time — bind operator symbols to operations
  • Language implementation time– bind floating point type to a representation
  • Compile time — bind a variable to a type in C or Java
  • Load time — bind a C or C++ static variable to a memory cell)
  • Runtime — bind a nonstatic local variable to a memory cell

2 Tipe Bindings:

  • Static binding: adalah disaat dimana tipe objek ditentukan saat compiled time
  • Dynamic binding: adalah disaat tipe objek ditentukan saat run-time.

Scope: {} atau lebih dikenal dengan Scope. Berfungsi untuk menjalankan suatu perintah/command setelah menerima suatu kondisi untuk menjalankan perintah yang berada di dalam scope atau {}.

 

Session 4 Data Types

Primitive Data Types: Hampir semua bahasa pemrograman memiliki tipe data primitif

Jenis Jenis Primitive Data Types:

  • Integer
  • Floating Point
  • Complex
  • Decimal
  • Boolean
  • Character

User-Defined Ordinal Types: An ordinal type is one in which the range of possible values can be easily associated with the set of positive integers

 

Array: An array is a homogeneous aggregate of data elements in which an individual element is identified by its position in the aggregate, relative to the first element.

Indexing Array :

  1. Indexing (or subscripting) is a mapping from indices to elements
  • array_name (index_value_list) ® an element
  1. Index Syntax

–          Fortran and Ada use parentheses

  • Ada explicitly uses parentheses to show uniformity between array references and function calls because both are mappings

–          Most other languages use brackets

Session 5 Expression and Asignment Statements

Arithmethic Expression

Expression : Sarana dasar menentukan perhitungan dalam Bahasa pemograman. Jadi, arithmethic expression adalah sebuah expression yang menghasilkan nilai numerik.

Aritmethic expression terdiri dari operator, operan, kurung dan fungsi panggilan.

Contoh Arithmethic Expression

public class Contoh{
public static void main(String[] args){
int panjang, lebar, luas;
luas = panjang * lebar; <—- Expression

}
}

 Operator dan Operand

  • Operator adalah bagian dari expression(+,-,/,*,dll)
  • Operand adalah data yang dimanipulasi

Operator memiliki 3 jenis yaitu:

  • Unary operator -> operator yang memiliki 1 operand
  • Binary operator -> operator yang memiliki 2 operand
  • Tenary operator -> operator yang memiliki 3 operand

Overloaded Operator

Operator yang biasa digunakan lebih dari 1 tujuan.

Contoh : bisa digunakan sebagai pengganti fungsi inputan, output ataupun bisa fungsi yang lainya.

Type Conversion

Terbagi 2 cara konversi yaitu :

  • Narrowing conversion yaitu mengkonversi suatu objek sehingga semua value dalam objek tersebut tidak perlu ditulis

Contoh sederhana : 10,092 (float)

Kita dapat mengubah nya menjadi sederhana menjadi 10 (int)

  • Widening conversion yaitu mengkonversi suatu objek sehingga menampilkan ‘hampir’ semua isi dari suatu objek tersebut

Contoh sederhana : 10 (int)

Kita dapat melihat hasil asli angka tersebut menjadi 10,092

Relational and Boolean Expression

Relational Expression:untuk membangun relational expression dibutuhkan 2 operator yaitu relational operator dan logical operator.

Relational operator ada 6 operator yaitu:

-lebih besar dari (>)

-lebih besar samadengan(>=)

-lebih kecil dari (<)

-lebih kecil samadengan(<=)

-samadengan(==)

-tidak samadengan(!=)

Logical Operator

Logical Operators ada 3 yaitu:

  1. &&= AND(“True” jika kedua statement benar)
  2. ||=OR(“True” jika salah satu/kedua statement benar)
  3. !=NOT(“True” jika argument salah, “False” sisanya)

Short circuit evaluation(Java)

  • Java menggunakan short-circuit evaluation untuk Boolean operators (&& and ||),
  • Tetapi Java juga menyediakan bitwise Boolean operators yang merupakan not short circuit (& and |)

if( true || false ) // short-circuiting boolean operator

if( true | false )  // non-short-circuiting boolean operator

Short circuit vs non short circuit operators

Perbedaan:

  1. Short circuit: tidak akan menghitung sisa expression bila tidak diperlukan
  2. Non short circuit: menghitung seluruh expression

Assignment Statement

  • Perintah yang ingin di masukkan.(satuan operasi di Java).
  • Beberapa contoh perintah yang harus di perhatikan.

Hal hal yang harus di perhatikan dalam membuat suatu statement.

  • Setiap statement diakhiri dengan semicolon( ).
  • Statement juga memiliki block{ }.

Mixed-mode assignment

  • Disebut mixed mode arithmetic expression jika operands dalam expression mengandung integer dan real
  • Dalam mixed mode arithmetic expression, integer akan dikonversi ke real sebelum dihitung
  • Dalam java,hanya widening coersion assignment yg dilakukan

 

Session 6 Control Structure Statement

Pengertian: Yaitu pernyataan terkontrol dan berfungsi untuk mengatur eksekusi.

Ada 2 macam Control Structure:

  • Selection
  • Iterative

Selection Structure: Menyediakan sarana untuk memilih antara dua atau lebih jalur eksekusi. Dibagi menjadi 2 kategori:

  • Two-way
  • Multiple-way

 

Two-way Selection: Yaitu selection statement yang hanya memiliki dua jalur eksekusi. Cnth: if-else

Multiple-way Selection: Yaitu selection statement yang memiliki lebih dari 2 jalur eksekusi. Cnth: switch case,if-else if

Iterative Structure: Yaitu pengulangan statement selama syarat yang ditentukan masih berlaku/ Dibagi menjadi 3 kategori:

  • Counter controlled loop
  • Logically controlled loop
  • User controlled loop

 

Counter Controlled Loop: Yaitu sebuah pernyataan berulang yang memiliki variabel loop, memiliki nilai awal, niali akhir, dan nilai-nilai stepsize.

  • Contoh dalam java:
    • for(i=0;i<25;i++)
    • out.println(“a”);
  • *koding akan ngeprint “a” sebanyak 25 kali

Logically Controlled Loop: Yaitu pengulangan berdasarkan Boolen Expression(nilai benar salahnya).

  • Contoh dalam java:
    • alpha = 0;
    • if(alpha !=10){
    • out.println(“alpha”);
    • alpha++;
    • }
  • *koding akan terus ngeprint alpha bila nilai alpha bukan 10

 

User Controled Loop: Looping bebas dikendalikan sesuai kehendak programmer

Contoh: penambahan break/continue sesuai kehendak programmer.

 

Session 7 Sub Program

Sub program atau fungsi adalah suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya.

Keuntungan:

  • Program lebih terstruktur
  • Lebih mudah di kembangkan
  • Gampang mencari kesalahan coding

Hal hal yang harus di perhatikan:

  • Fungsi memerlukan masukan yang dinamakan argumen atau parameter, yang akan diolah oleh fungsi.
  • Sutau fungsi secara umum terdiri dari dua buah komponen utama, yaitu definisi fungsi dan tubuh fungsi.
  • Tubuh dari fungsi berisi dengan statemen-statemen yang akan melakukan tugas yang diberikan kepada fungsi bersangkutan yang ditulis di dalam tanda kurung kurawal buka dan tutup

Definisi fungsi ditulis sebelum tubuh fungsi tanpa diakhiri dengan titik koma. Tipe_hasil dari fungsi tergantung dari tipe data hasil balik yang akan diberikan oleh fungsi. Hasil balik dari fungsi misalnya berupa nilai numeric pecahan, maka tipe dari fungsi dapat dibuat float atau double atau long, tergantung dari ketepatan yang diinginkan.

Jika fungsi tidak memberikan hasil balik, maka tipenya adalah void. Jika suatu fungsi didefinisikan tanpa menggunakan tipenya, maka akan dianggap bertipe int.

Lingkup-lingkup Variabel dalam fungsi :

  1. Variabel lokal
    Variabel lokal merupakan variabel yang dideklarasikan dalam suatu blok tertentu dan hanya dikenal dalam
    blok fungsi tersebut.
  2. Variabel global
    Variabel global merupakan variabel yang dideklarasikan di luar blok fungsi dan bersifat dapat dikenal oleh
    semua bagian dari program
  3. Variabel static
    Variabel static merupakan variabel yang menahan nilainya sementara pemanggilan fungsi berlangsung.

 

Session 8 Abstract Data Type

Advantages of Data Abstraction:

  • Reliability: user code tidak bisa di akses secara langsung
  • mengurangi jarak kode yang harus diperhatikan oleh para programmer.

Tipe Data Abstrak

  • Tipe data abstrak didefinisikan sebagai model matematika dari objek data yang membentuk sebuah tipe data,serta fungsi yang beroperasi pada objek-objek ini (Heilemen, 1996).
  • Beberapa contoh dari tipe data abstrak, diantaranya adalah Stack, Queue dan List.

THE CONCEPT OF ABSTRACTION

  • Abstraction allows one to collect instances of entities into groups in which their common attributes need not be considered.
  • Two kinds of abstractions in programming languages are process abstraction and data abstraction.
  • The concept of process abstractionis one of the oldest.  All subprograms are process abstractions because they provide a way for a program to specify that some process is to be done, without providing the details of how it is to be done.
  • Process abstraction is crucial to the programming process.  The ability to abstract away many of the details of algorithms in subprograms makes it possible to construct, read, and understand large programs.
  • All subprograms, including concurrent subprograms, and exception handlers, are process abstractions

Pemrograman Generik pada Java

Seperti pada C++, Java adalah bahasa bertipe kuat. Akan tetapi, pemrograman generik pada Java lebih dekat dengan Smalltalk daripada C++. Seperti telah dijelaskan sebelumnya, pemrograman generik pada Java berdasarkan pada kelas Object yang merupakan kelas super dari semua kelas. Hingga tingkat tertentu, ini membuat Java mirip dengan Smalltalk : Struktur data yang didesain untuk menampung Object bisa digunakan untuk menyimpan data kelas apapun. Kita tidak perlu membuat template atau fitur pada bahasa pemrograman lain untuk mendukung pemrograman generik.

Pada Java, parameter suatu subrutin harus bertipe tertentu. Dan subrutin hanya bisa menggunakanoperasi untuk tipe itu saja. Subrutin dengan parameter Object bisa digunakan untuk objek tipe apa saja, akan tetapi subrutin hanya bisa menggunakan operasi pada kelas Object saja, dan sebenarnya hanya sedikit operasi pada kelas Object! Misalnya tidak ada operasi pembanding pada kelas Object, jadi kita tidak bisa membuat algoritma pengurutan generik. Kita akan lihat bagaimana Java menyelesaikan masalah ini.

 

Session 9 Object Oriented Programming

OOP ( Object Oriented Programming ) adalah suatu metode pemrograman yang berorientasi kepada objek.

Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan mengikuti model yang telah ada di kehidupan sehari-hari.

Konsep dasar OOP dibagi menjadi 3:

  • Encapsulation (Pembungkusan)

Variabel dan method dalam suatu obyek dibungkus agar terlindungi dari pengguna obyek.

  • Inheritance (Pewarisan)

Inheritance adalah penurunan sifat dari Superclass kepada Subclass.

  • Polymorphism ( Perbedaan Bentuk )

Merupakan kemampuan objek-objek berbeda kelas dalam pewarisan objek untuk merespon secara berbeda terhadap suatu pesan yang sama dan untuk memutuskan method mana yang akan diterapkan kepada sebuah objek.

  1. ADT biasanya disebut Class
  2. Sebuah Class yang mewarisi disebut subclass
  3. Class yang mewarisi Class lain disebut superclass
  4. Subprogram yang mendefinisikan operasi pada objek disebut method

Beberapa masalah dalam OOP:

  • The Exclusivity of Objects
  1. Semuanya adalah obyek
  2. Menambahkan objek ke sistem pengetikan lengkap
  3. Termasuk imperative-style typing system untuk primitives tetapi membuat segalanya object

 

  • Are Subclasses Subtypes?
  1. Apakah maksud dari hubungan “is-a” antara objek kelas induk dan obyek subclass?

Jika kelas turunan adalah-kelas induk, maka objek dari kelas turunan harus berperilaku sama dengan objek kelas induk

  1. Sebuah kelas turunan adalah subtipe jika ia memiliki hubungan “is-a” dengan class induk

Subclass hanya dapat menambahkan variabel dan metode dan menimpa metode mewarisi cara-cara “kompatibel”

 

  • Single and Multiple Inheritance

OOP memperbolehkan sebuah kelas mewarisi dua atau lebih class

  • Kekurangan:

Bahasa dan implementasi yang ribet

Kemungkinan ketidakefektivitas

 

  • Kelebihan:

Kadang dapat memudahkan kita

 

  • Nested Class

Jika sebuah kelas baru yang dibutuhkan oleh hanya satu kelas, tidak ada alasan untuk mendefinisikan sehingga dapat dilihat oleh kelas-kelas lain.

Implementasi dalam OOP

Dua tantangan dan hal menarik:

  1. Storage structures for instance variables
  2. Dynamic binding of messages to methods

 

Instance Data Storage

  1. Class instance records (CIRs) menyimpan bentuk suatu objek
  2. Jika seuah class memiliki parent class, maka instance variable ditambah ke parent CIR
  3. Karena CIR adalah statis, akses ke semua variabel misalnya dilakukan as it is in record(?)

 

Dynamic Binding of Methods Calls

Metode dalam class yang statis terikat tidak perlu terlibat dalam CIR; metode yang akan secara dinamis terikat harus memiliki entri dalam CIR Panggilan untuk secara dinamis

  • metode terikat dapat dihubungkan ke kode yang sesuai melalui pointer di CIR
  • Struktur penyimpanan kadang-kadang disebut maya metode tabel (vtable)
  • panggilan metode dapat direpresentasikan sebagai offset dari awal vtable

 

 

 

Session 10 Concurency

Concurrency is the ability to run several programs or several parts of a program in parallel. If a time consuming task can be performed asynchronously or in parallel, this improve the throughput and the interactivity of the program.

Concurrency can be divided into different levels

  • Physical concurrency happens when several program units from the same program literally execute simultaneously on more than one processor
  • Logical concurrency, happens when the execution of several programs takes place in an interleaving fashion on a single processor

Concurrency in Java

  1. Processes and Threads
  • A Java program runs in its own process and by default in one thread. Java supports threads as part of the Java language via the Thread code. The Java application can create new threads via this class.
  • Java 1.5 also provides improved support for concurrency with the in the java.util.concurrent package.
  1. Locks and thread synchronization
  • Java provides locks to protect certain parts of the code to be executed by several threads at the same time. The simplest way of locking a certain method or Java class is to define the method or class with the synchronized keyword.
  • The synchronized keyword in Java ensures:
  • that only a single thread can execute a block of code at the same time
  • that each thread entering a synchronized block of code sees the effects of all previous modifications that were guarded by the same lock
  • Synchronization is necessary for mutually exclusive access to blocks of and for reliable communication between threads.
  1. Volatile

If a variable is declared with the volatile keyword then it is guaranteed that any thread that reads the field will see the most recently written value. The volatile keyword will not perform any mutual exclusive lock on the variable.

 

Semaphores

  • A counting semaphore. Conceptually, a semaphore maintains a set of permits. Each acquire() blocks if necessary until a permit is available, and then takes it. Each release() adds a permit, potentially releasing a blocking acquirer. However, no actual permit objects are used; the Semaphore just keeps a count of the number available and acts accordingly.
  • Semaphores are often used to restrict the number of threads than can access some (physical or logical) resource. For example, here is a class that uses a semaphore to control access to a pool of items
  • Before obtaining an item each thread must acquire a permit from the semaphore, guaranteeing that an item is available for use. When the thread has finished with the item it is returned back to the pool and a permit is returned to the semaphore, allowing another thread to acquire that item. Note that no synchronization lock is held when acquire() is called as that would prevent an item from being returned to the pool. The semaphore encapsulates the synchronization needed to restrict access to the pool, separately from any synchronization needed to maintain the consistency of the pool itself.

Monitor

A monitor is mechanism to control concurrent access to an object.

This allows you to do:

Thread 1:

public void a()

{

synchronized(someObject) {

// do something (1)

}

}

Thread 2:

public void b()

{

synchronized(someObject) {

// do something else (2)

}

  • This prevents Threads 1 and 2 accessing the monitored (synchronized) section at the same time. One will start, and monitor will prevent the other from accessing the region before the first one finishes.
  • It’s not a special object. It’s synchronization mechanism placed at class hierarchy root: java.lang.Object.
  • There are also wait and notify methods that will also use object’s monitor to communication among different threads.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Session 11 Exception Handling and Event Handling

 

An exception (or exceptional event) is a problem that arises during the execution of a program. When an Exception occurs the normal flow of the program is disrupted and the program/Application terminates abnormally, which is not recommended, therefore, these exceptions are to be handled.

An exception can occur for many different reasons. Following are some scenarios where an exception occurs.

-A user has entered an invalid data.

-A file that needs to be opened cannot be found.

-A network connection has been lost in the middle of communications or the JVM has run out of memory.

Some of these exceptions are caused by user error, others by programmer error, and others by physical resources that have failed in some manner.

Based on these, we have three categories of Exceptions. You need to understand them to know how exception handling works in Java.

Checked exceptions − A checked exception is an exception that occurs at the compile time, these are also called as compile time exceptions. These exceptions cannot simply be ignored at the time of compilation, the programmer should take care of (handle) these exceptions.

For example, if you use FileReader class in your program to read data from a file, if the file specified in its constructor doesn’t exist, then a FileNotFoundException occurs, and the compiler prompts the programmer to handle the exception.

Jenis – jenis Exception:

Exception class merupakan kesalahan yang disebabkan oleh program dan kesalahan external. Kesalahan jenis ini dapat ditangkap dan diatasi oleh program. Exception terdiri dari banyak subclass.

Error class merupakan class yang berhubungan dengan kesalahan pada internal system. Jika terjadi kesalahan jenis ini maka hanya dapat dilakukan bagaimana memberitahu kepada pemakai dan melakukan pengakhiran program.

Operasi Exception dibagi menjadi 3 buah operasi, yaitu :

1.Claiming an exception

2.Throwing an exception

3.Catching an exception

Exception merupakan sebuah event yang akan menginterupsi program yang tidak berjalan normal / error, lebih mudahnya error handling merupakan penanganan error. Tidak semua penanganan error ditangani dengan exception, namun dapat mempermudah penanganan error.

Exception terdiri dari dua macam kelompok, yaitu :

– Exception yang merupakan subclass RunTimeException

– Exception yang bukan subclass RunTimeException

RunTime Exception biasanya disebabkan oleh kesalahan program atau pada desain program. Misalnya NullPointerException yang disebabkan oleh proses inisialisasi program yang tidak sempurna dan ArrayIndexOutOfBoundsException yang  disebabkan akses array yang melebihi kapasitas array yang ada.

Dalam bahasa Java, ketika terjadi kesalahan, otomatis akan dilemparkan sebuah objek yang disebut exception, yang kemudian dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani kesalahan tersebut. Proses pelemparan exception tersebut sering dikenal dengan istilah throwing exception, sedangkan proses penerimaan exception yang bersangkutan dikenal dengan istilah catch exception

Ada lima kata kunci yang digunakan oleh Java untuk menanngani exception ini, yaitu, try, catch, finally, throw, dan throws.

pembahasannya :Pada dasarnya, Exception merupakan subkelas dari kelas java.lang.Throwable.  “Bukalah dokumentasi java untuk lebih menyakinkan anda”. Karena Exception adalah sebuah kelas maka hakikatnya ketika program berjalan dan muncul sebuah bug atau kesalahan maka bug tersebut dapat dianggap sebuah object.  Sehingga ketika object ini di tampilkan di layar maka java akan secara otomatis memanggil method toString yang terdapat dalam object bertipe Exception ini. Java memberikan akses kepada developer untuk mengambil object bug yang terjadi ini dengan mekanisme yang dikenal Exception Handling. Exception handling merupakan fasilitas di java yang memberikan flexibilitas kepada developer untuk menangkap bug atau kesalahan yang terjadi ketika program berjalan. Contoh Exception Handling akan dibahas pada bagian berikutnya.

jenis error ada 3 :

  1. Syntax Error, Syntax Error adalah suatu kesalahan dari penulisan syntax pada program sehingga syntax tersebut tidak dapat dieksekusi oleh program yang pasti membuat program tersebut error.

2.Logical Error, Logical Error adalah suatu kesalahan yang disebabkan oleh si programmer sendiri, lah kok bisa? hal ini disebabkan oleh kesalahan penulisan atau rumus yang diterapkan oleh si programmer.

anda pasti tahu bila semua angka tidak dapat dibagi oleh 0 (nol).

lah kalau si programmer tetep ngotot,pasti programnya error.

  1. runtime Error, error yang satu ini tergolong error yang unik,lah kenapa? soalnya menurut saya errornya gara-gara kecerobohan si programmer itu sendiri. error ini akan muncul apabila terjadi miss komunikasi antara program dan file yang dipanggil dalam program, misalnya program itu membutuhkan database yang bernama db_siswa yang disimpan pada localhost,tapi kenyatannya ternyata si programmer tidak mempunyai atau belum membuat database tersebut di localhost, program akan tetap berjalan, namun saat aksi simpan data, hapus data atau tampil data pasti program akan error.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Session 12 Functional Programming Language

 

Functional Forms:A higher-order function, or functional form, is one that either takes functions as parameters or yields a function as its result, or both

LISP Data Types and Structures

  • Data object types: originally only atoms and lists
  • List form: parenthesized collections of sublists and/or atoms
  • Originally, LISP was a typeless language
  • LISP lists are stored internally as single-linked lists

Output Functions:

-Biasanya tidak dibutuhkan karena hasil dari fungsi selalu diperlihatkan seperti printf, dll

-explicit input dan output bukan bagian dari fungsi programming karena input dan output memiliki efek yang berbeda

List Functions:

QUOTE is required because the Scheme interpreter, named EVAL, always evaluates parameters to function applications before applying the function.  QUOTE is used to avoid parameter evaluation when it is not appropriate

 

Session 13 Logical Programming Langaunge

Simple Assignment Operator

=   :    Simple assignment operator

Arithmetic Operators

+   :    Additive operator (also used        for String concatenation)-   :    Subtraction operator*   :    Multiplication operator/   :    Division operator%   :    Remainder operator

Unary Operators

+   :    Unary plus operator; indicates        positive value (numbers are         positive without this, however)-   :    Unary minus operator; negates        an expression++  :    Increment operator; increments        a value by 1–   :   Decrement operator; decrements        a value by 1!    :    Logical complement operator;        inverts the value of a boolean

==   :   Equal to!=   :   Not equal to>    :   Greater than>=   :  Greater than or equal to<    :   Less than<=   :   Less than or equal to

&&   :   Conditional-AND||   :   Conditional-OR?:   :  Ternary (shorthand for         if-then-else statement)

instanceof: Compares an object to                 a specified type ~  :      Unary bitwise complement<< :     Signed left shift>> :     Signed right shift>>>:     Unsigned right shift&  :     Bitwise AND^  :     Bitwise exclusive OR|  :     Bitwise inclusive OR

Variable

  • Variable: any string of letters, digits, and underscores beginning with an uppercase letter
  • Instantiation: binding of a variable to a value
    • Lasts only as long as it takes to satisfy one complete goal
  • Structure: represents atomic proposition

functor(parameter list)

 

 

Rule Statements

 

  • Used for the hypotheses
  • Headed Horn clause
  • Right side: antecedent (if part)
    • May be single term or conjunction
  • Left side: consequent (then part)
    • Must be single term

Conjunction: multiple terms separated by logical AND operations (implied

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.