Kamis, 30 Oktober 2014

Assignment Chapter 5


Programming Language Chapter 5
ASSIGNMENT 5
30 Oct 2014
REVIEW QUESTION

11. Q: What are the advantages and disadvantages of dynamic type binding ?
A:
-Advantages = It is more easy to write generic code.
-Disadvantages = High Cost to check type and interpretation

12. Q: Define static, stack-dynamic, explicit heap-dynamic, and implicit heapdynamic variables. What are their advantages and disadvantages ?
A:
- Static -- memory alloc'd before execution. Stays throughout. Adv: runtime efficient, history-sensitive subprograms. Disadv: no recursion.
- Stack dynamic - memory alloc'd from system stack when decl elaborated. Adv: recursion, conserves memory. Disadv: no history sensitive subpgms, less run-time efficient than static.
- Explicit heap-dynamic -- memory alloc'd/freed by pgmer from "heap". Adv: flexible storage mgmt. Disadv: less effiicent than stack-dyn; Error prone in pairing new/delete stmts.
- Implicit heap-dynamic -- heap memory alloc'd/freed by assignments. Adv: highext flexibility. Disadv: run-time cost to maintain all the dynamic attrs; Reduced compiler error detection.

13. Q: Define lifetime, scope, static scope, and dynamic scope.
A:
-Lifetime -- when memory is alloc'd for a variable (when in existence).
-Scope -- portions of pgm variable can be referenced or set.
-Static scope -- scope based on source pgm text (static ancestors).
-Dynamic scope -- scope based on run-time call sequence.

14. Q: How is a reference to a nonlocal variable in a static-scoped program connected
to its definition ?
A:
A reference to a non-locally variable in a static-scoped language with nested subprograms requires a two step access process:

1. Find the correct activation record instance
2. Determine the correct offset within that activation record instance

15. Q: What is the general problem with static scoping ?
A:
Usually too much access. Scope structure destroyed as pgm evolves.

Problem Set

1. Q: Which of the following identifier forms is most readable? Support your decision.
SumOfSales
sum_of_sales
SUMOFSALES

A: Sum_of_sales is the most readable. It is because it’s doesn’t have any problem with case sensitive, because the following identifier does not use any caps lock.

2. Q: Some programming languages are typeless. What are the obvious advantages
and disadvantages of having no types in a language?
A:
a. Advantages:
- The only advantage is that is allows coders to write sloppy programs quickly.

b. Disadvantages:
- You are not in control of the data and variables, the compiler or interpreter is.
- If you mis-assign variables, there is no way for the compiler to catch any of your mistakes. It just “does what you said”, even if it is wrong.
- Supporting programs in a type-less language is much more difficult that in a strongly types one. It is often very difficult to determine what the original programmer wanted to do.

3. Q: Write a simple assignment statement with one arithmetic operator in some
language you know. For each component of the statement, list the various
bindings that are required to determine the semantics when the statement is
executed. For each binding, indicate the binding time used for the language.
A:
(C++)
int count;count = count + 5;
Possible types for count: set at language design time. Type of count: bound at compile time.
Set of possible values of count: bound at compiler design time. Value of count: bound at execution time with this statement. Set of possible meanings for the operator symbol ““:*bound at language definition time.*Meaning of the operator symbol “” in this statement: bound at compile time.
Internal representation of the literal “5”: bound at compiler design time.

4. Q: Dynamic type binding is closely related to implicit heap-dynamic variables.
Explain this relationship.
A: Implicit heap-dynamic variables acquire types only when assigned value, which must be at runtime. Therefore, this variable are always dynamically bound to types.

5. Q: Describe a situation when a history-sensitive variable in a subprogram is
useful.
A: To describe a situation when a history-sensitive variable in a subprogram is useful, suppose that a FORTRAN subroutine is used to implement a data structure as an abstraction. In this situation, it is essential that the structure persists between different calls to the managing subroutine.


Kamis, 23 Oktober 2014

Asignment CHAPTER 4

REVIEW QUESTION 
11. Describe the parsing problem for a bottom-up parser.
      Answer :bottom up parser only can identifies and processes the text's lowest-level details before processes middle level structures and leaving the highest level overall structure to last


12. Explain why compilers use parsing algorithms that work on only a subset of all grammars.
      Answer :because compiler can use one parsing compiler that work on only subset of all grammars


13. Why are named constants used, rather than numbers, for token codes?
      Answer :
      - for the sake of readability of lexical and syntax analyzers.


14. Describe how a recursive-descent parsing subprogram is written for a rule with a single RHS.
      Answer :
     -A recursive-descent subprogram for a rule with a single RHS is relatively
      simple. For each terminal symbol in the RHS, that terminal symbol is compared
      with nextToken. If they do not match, it is a syntax error. If they match,
      the lexical analyzer is called to get the next input token. For each non terminal,
      the parsing subprogram for that nonterminal is called.


15. Explain the two grammar characteristics that prohibit them from being used as the basis for a      top-down parser.
      Answer : Two grammar characteristics that prohibit top-down parsing:
                      Direct or indirect Left Recursion.
     

Rabu, 15 Oktober 2014

Coretan Cengeng Part 2


 "Kamu disana lagi ngapain ? pasti lagi tidur ya, pertanyaan basa-basi yang bodoh haha . Malam ini kamu kembali hadir dipikiran aku tik "

Ya, gue bermonolog alias ngomong sendiri didalam sebuah text message yang gue kirimkan ke pada dia . 
Kelihatannya gue seorang laki-laki yang bodoh, masih berani mengirimkan pesan seperti itu kepada orang yang sepertinya memang sudah tidak menanggap gue lagi .

Gue sadar kok saat mengirimkan itu, dan gue juga tau bahwa gak akan dibalas seperti biasanya . Ya habis gimana ? menahan rindu itu gak semudah ngupil trus dipeperin kebawah meja . 

Gue sangat merindukan dia saat ini, sudah lama sekali rasanya tak bertatap muka, dan mendengar suaranya yang lembut nan manja itu . Sudah lebih dari 3 bulan tak bertemu, kalau sekedar berkirim pesan pernah beberapa kali dia mengirimi pesan duluan . Tapi aku merindukan sosoknya, bukan sekedar suaranya atau pesan singkat .

Gue sering berkhayal kalo disuatu hari yang sepi, tiba-tiba dia menelpon meminta untuk bertemu . Dan dalam khayalan gue itu, gue mengiyakan ajakannya . Keinginan gue sewaktu bertemu adalah memeluknya dan berharap gue bisa membuat waktu berhenti sementara . Gue ingin sekali bergandengan tangan dengannya lagi . Sambil berbicara tentang cerita hari ke hari seperti dulu, memeluknya dikala dia manja dan lelah dari kuliahnya, mengantarnya pulang setelah seharian dia berkutat kuliah yang padat .

Gue juga pernah berkhayal, kalo tiba-tiba dia datang kerumah dan menutup mata gue dari belakang ketika gue sedang main komputer . Lalu dia berbisik dan langsung memeluk gue dari belakang . Dan bertanya dengan suaranya yang khas " kamu lagi apaaaain ? " .

Atau gue juga pernah berkhayal kalo gue bertemu dia tanpa sengaja disuatu tempat, lalu dia berlari menghampiri gue dan langsung memeluk gue sambil berkata " aku ga nyangka bisa ketemu disini " . 

Bahkan gue pun pernah berkhayal kalo dia tiba-tiba mengundang kerumahnya, lalu ketika gue datang diamenyambut gue dengan pelukan dan gue balas memeluknya sambil menangis . Gue ingin menangis dipelukannya, mengeluh bahwa hidup tanpa dirinya itu sangat berat . Lalu dia seperti biasa menenangkan gue dengan lembut .

Ya gue memang lemah, bahkan gue terlalu bodoh untuk hal ini . Gue gak berani meneleponnya padahal gue sangat ingin mendengar suaranya . Gue gak berani mengajaknya bertemu padahal gue sangat ingin berjumpa . Gue gak berani bahkan mengunjungi rumahnya, menyapa orang tuanya yang akrab sama gue . Keberanian gue hilang semua, setelah dia pergi semua yang ada di diri gue pun seakan pergi .

Gue selalu berharap bahwa setiap gue membuka mata setelah tidur akan ada berita baik dan kabar dari dia .
Walau sampai sekarang belum ada, tapi gue masih berusaha untuk menunggu kabar itu .

Dan malam ini, gue sangat merindukan dirinya, seorang gadis yang menemani gue dari SMA sampe lulus sekolah . Gadis bertubuh Tinggi, berkulit coklat, berambut panjang dan tentu saja gadis yang selalu ada muncul dipikiranku .
Review #3

11. How is the order of evaluation of attributes determined for the trees of a
given attribute grammar?

Semantik statis adalah bahasa hanya secara tidak langsung terkait dengan makna program selama eksekusi; melainkan harus dilakukan dengan bentuk hukum dari program 
(sintaks bukan semantik). Banyak aturan semantik statis bahasa menyatakan kendala jenisnya. Semantik statis dinamakan demikian karena analisis yang dibutuhkan untuk 
memeriksa spesifikasi ini dapat dilakukan pada waktu kompilasi. 
      Semantik dinamis adalah makna ekspresi, pernyataan, dan unit program bahasa pemrograman.

12. What is the primary use of attribute grammars?

=Atribut tata bahasa utama yang digunakan untuk memberikan deskripsi lengkap sintaks dan semantik statis bahasa pemrograman.

13. Explain the primary uses of a methodology and notation for describing
the semantics of programming languages.

=Jika pemutusan lingkaran dapat ditampilkan, deskripsi aksiomatik loop disebut total kebenaran. Jika kondisi lain dapat dipenuhi tetapi terminasi tidak 
dijamin, hal itu disebut correctnes parsial.

14. Why can machine languages not be used to define statements in operational
semantics?

=Bahasa mesin tidak dapat digunakan untuk mendefinisikan pernyataan dalam semantik operasional karena beberapa masalah. Pertama, langkah-langkah individu dalam pelaksanaan mesin 
bahasa dan perubahan yang dihasilkan pada keadaan mesin terlalu kecil dan terlalu banyak. Kedua, penyimpanan komputer yang nyata terlalu besar dan kompleks.

15. Describe the two levels of uses of operational semantics.

=Pada tingkat tertinggi, yang menarik adalah di hasil akhir dari pelaksanaan program yang lengkap. Hal ini kadang-kadang disebut semantik operasional alami. 
Pada tingkat terendah, semantik operasional dapat digunakan untuk menentukan makna yang tepat dari sebuah program melalui pemeriksaan urutan lengkap negara 
perubahan yang terjadi ketika program dijalankan. Penggunaan ini kadang-kadang disebut semantik operasional struktural.

Problem Solve #3

11. Consider the following grammar:
<S> → <A> a <B> b
<A> → <A> b | b
<B> → a <B> | a
Which of the following sentences are in the language generated by this
grammar?
a. baab
b. bbbab
c. bbaaaaa
d. bbaab

=<S> → <A> <B> <C>
<A> → a <A> | a
<B> → b <B> | b
<C> → c <C> | c

12. Consider the following grammar:
<S> → a <S> c <B> | <A> | b
<A> → c <A> | c
<B> → d | <A>
Which of the following sentences are in the language generated by this
grammar?
a. abcd
b. acccbd
c. acccbcc
d. acd
e. accc

=LHS non-terminal S didefinisikan sebagai non-terminal A, terminal, non-terminal B dan terminal b, di mana non-terminal A dapat nol atau lebih b atau satu b, dan di mana non-terminal B dapat menjadi salah satu atau lebih adalah satu atau a; 

Menghasilkan satu atau lebih b atau satu b, satu, satu atau lebih atau satu, dan satu b. 

Jawaban a (Baab) dan d (bbaab) mematuhi produksi ini.


13. Write a grammar for the language consisting of strings that have n
copies of the letter a followed by the same number of copies of the
letter b, where n > 0. For example, the strings ab, aaaabbbb, and

=<S> -> <A>
<A> -> a <A> b <B>
aaaaaaaabbbbbbbb are in the language but a, abb, ba, and aaabb are not.

14. Draw parse trees for the sentences aabb and aaaabbbb, as derived from
the grammar of Problem 13.

=<stmt> -> <A> 
<A> -> A <A> b | ab 
pohon untuk aabb 
pohon untuk aaaabbbb

15. Convert the BNF of Example 3.1 to EBNF

=<program> -> begin <stmt_list> end

<stmt_list> -> <stmt>

| <stmt> ; <stmt_list>

<stmt> -> <var> = <expression>

<var> -> A | B | C

<expression> -> <var> {(+|-) <var>}

Selasa, 14 Oktober 2014

Coretan Cengeng Part 1


Jadi seharusnya barusan gue udah tidur, gue masuk kamar dan kamar gue ber AC .. Lalu tiba-tiba gue keringetan sendiri, padahal pake AC . Gue gak pake selimut dan tangan kanan gue lagi iseng buka folder isi foto-foto dulu (._.) *sekarang gue baru tau kenapa gue keringetan* .

Gak tau sih kenapa tangan gue seakan-akan itu bergerak sendiri tanpa dikomando *sebenernya ini boong, emang guenya yang iseng* . Dan begitu menemukan 1 foto yang sangat sakral, tau sakral ? nih sakral ..
 


Iya foto itu mempunyai suatu hubungan batin dengan gue cukup sangat erat . Begitu ngeliat foto itu gue seperti terbawa kembali ke masa lalu, diwaktu dimana ketika foto itu dijepret, eh kaya ketapel, ketika foto itu diambil, ah berasa maling, ketika foto itu difoto, nah inih udah pas .

Iya pikiran gue langsung balik kesana terus gapulang-pulang akhirnya diomelin emaknya .
Ah FOKUS AYO FOKUS !

Oke jadi tadi gue ngeliat foto itu dan gue langsung rindu dimasa itu .
Foto yang gak akan pernah gue hapus, gue buang atau gue kasih liat ke pak polisi dilampu merah cakung .

Yang seharusnya gue udah terlelap dan berusaha untuk bertemu dengan dia di dalam mimpi *yang tentu saja pacarnya gausah dibawa* , karena foto itu gue jadi seger lagi, terbangun dan akhirnya mengetik kalimat demi kalimat disini yang sebenernya muter-muter .

Iya gue emang bukan cowo yang bisa nulis kata-kata puitis romantis dan manis untuk orang yang gue sayangi .
Ini gue menulis ini sambil memikirkan dia tapi yang keluar malah kalimat yang muter-muter bikin bingung . Ya begitulah kekuatan cinta, manusia yang notabene makhluk ciptaan TUHAN paling sempurna saja dibikin kewalahan, bahkan bingung .

.....
Dan kali ini, dia mampu membuat gue kewalahan menahan sebuah penyakit bernama Rindu .
Ah sungguh gadis tinggi berkulit cokelat berambut panjang yang ngeselin, mengapa sulit sekali membuang bayanganmu didalam otak ini ?
Sebenernya gue gak mau membuang segala pikiran tentang dia, gue pengen dia punya tempat sendiri di otak dan hati gue, yang sewaktu-waktu bisa gue keluarkan ketika gue mau dan gue simpan ketika gue sedang dalam daily activity gue biar gak mengganggu konsentrasi .

Terbayang kembali ke waktu dimana pertama kali dalam seumur hidup gue di bumi yang bulat dan belang biru-ijo-putih kalo diliat dari google earth, ulang tahun gue dirayain bareng sama pacar . Ya pacar, suatu bentuk hubungan yang gue sendiri gak punya diantara teman gue yang lain .

Iya itu pertama kali gue ngerasain " oh gini yah rasanya punya pacar pas ulang tahun trus dibikinin surprise kaya di film-film itu " Jadi gue masih ingat jelas kejadiannya kaya apa, ada siapa aja, dan dimana lokasi itu terjadi . Semua masih membekas dengan jelas dan gue gak mau lupain hal itu . Itu adalah salah satu hal indah yang pernah gue rasakan selama hidup .

Dengan kondisi baru pacaran sebulan, dia berkonspirasi sama temen-temen gue yang emang baru banget kenal setelah pacaran sama gue, dia beli kue, beliin gue kado . Gue berpikir "sepertinya gue gak salah pilih pacar" . Duduk disebelah gue, motong kue, tiup lilin, eh harusnya tiup lilin dulu tapi waktu itu gue terlalu grogi untuk hal pertama jadi gue asal nancepin piso di kuenya . Pertama kalinya tangan gue digandeng saat itu, ketika difoto pun itu pertama kali gue bisa sedekat itu duduknya . Gue masih punya dan mungkin cuma tinggal itu satu-satunya foto di masa itu yang tersisa sekarang . Gue lupa foto pake hape siapa yang jelas gue masih menyimpan bahkan sampai ada beberapa backup yang sengaja gue buat takut kalau-kalau ada hal yang tidak gue inginkan .




Yah tentu gue masih simpan ini, gatau deh kalo dia nya .. Ya jelas udah gak ada lah hahaha * ketawa ngehibur diri sendiri :'( *

Gue sih ga berharap banyak, jika suatu saat nanti dia sadar atau tau bahwa gue pernah menulis ini, pernah memiliki rindu yang besar buat dia yang gak bisa gue sampaikan ke dia dan hanya bisa gue tulis disini setiap kali gue rindu, dia akan melihat ke langit dan berucap dalam hati *aku ingin bertemu kamu, kamu dimana sekarang* . Sepertinya harapan gue terlalu banyak ya ? ...

Ya gue cuma bisa melampiaskan rindu gue dengan membuka folder-folder foto yang masih gue simpan hingga beberapa backup ditempat berbeda . Menuliskan semua perasaan gue disini dan tentu saja melewati rumahmu tengah malam, melewati jalan-jalan yang pernah kita lalui, mendatangi tempat-tempat yang dulu sering kita kunjungi dan yang paling sering adalah mendatangi rumah lama mu yang sudah lama ditempati orang lain . Tentu saja seorang diri tanpa ada yang tau . Tapi setelah gue tulis disini dan ada yang kebetulan baca ya jadi ada yang tau deh .

Langit terkadang gelap, terkadang terang . Setelah langit gelap, hujan turun membasahi tanah, lalu terbitlah kembali mentari yang menerangi dunia dan muncul pelangi yang menambah keindahan birunya langit .

Aku sekarang sedang berada dibawah langit yang gelap dan sedang berdiri sendiri dibawah hujan yang bisa membuat aku kapan saja sakit . Aku berusaha kuat menunggu terbitnya kembali mentari dilangit biru lalu muncul pelangi yang membuatnya semakin indah . Ya tentu saja pelangi itu kamu, langit itu dunia kita dan biru itu warna kesukaanmu yang tak pernah aku lupa

Senin, 13 Oktober 2014

Asignment Chapter II

 Review Question
11. What control flow statements were added to Fortran IV to get Fortran 77?
-> Statement control flow yang ditambahkan di Fortran IV untuk menjadi Fortran 77 adalah Logical Loop (Logika pengulangan)
12. Which version of Fortran was the first to have any sort of dynamic variables?
-> Fortran 90
13. Which version of Fortran was the first to have character string handling?
-> Fortran 77
14. Why were linguists interested in artificial intelligence in the late 1950s?
-> Karena para ahli bahasa khawatir akan proses yang dilakukan oleh  bahasa alami
15. Where was LISP developed? By whom?
-> LISP dikembangkan oleh John McCarthy di MIT
Problem Set
11. Was IBM’s assumption, on which it based its decision to develop PL/I, correct, given the history of computers and language developments since 1964?
-> Asumsinya benar karena pada tahun 1970-an, PL / I secara luas digunakan untuk aplikasi bisnis dan ilmiah walaupun banyak kegagalan pada tahun-tahun sebelumnya dan sesudahnya.
12. Describe, in your own words, the concept of orthogonality in programming language design
->orthogonality adalah penyederhanaan dari bermacam-macam
fitur bahasa pemrograman sehingga suatu bahasa pemrograman lebih mudah untuk dipahami dan diaplikasikan
13. What is the primary reason why PL/I became more widely used than ALGOL 68?
->PL / I mempunyai ALGOL 60 yang terbaik (rekursi dan struktur blok), FORTRAN IV (kompilasi terpisah dengan komunikasi melalui data global), dan COBOL (struktur data, input / output, dan laporan fasilitas pembangkit), beberapa fitur baru
14. What are the arguments both for and against the idea of a typeless language?
-> Argumen “for” fleksibel dan mudah digunakan. Tanpa harus menentukan tipe data. programmer bebas untuk mengimprovisasikan kode yang dihasilkan dengan cepat dan tanpa banyak berpikir. Belajar bahasa jauh lebih simple karena kita tidak harus menentukan ukuran atau bagaimana compiler akan mengartikan tipe nantinya
Argumen “Against” kurang aman karena proses data, seperti penugasan tipe karakter ‘A’ yang sebenarnya dapat “diartikan” sebagai nilai HEX oleh programmer. Compiler juga akan mengalami kesulitan mengartikan nilai-nilai floating point dibandingkan dengan bilangan bulat. Aritmatika yang dihasilkan juga akan menyebabkan masalah serius; seperti menambahkan 5 + “happy” dan bagaimana mereka di terapkan berbeda dari yang dimaksud oleh programmer.
15. Are there any logic programming languages other than Prolog?
 -> FORTRAN, LISP,  dan ALGOL 60

Entri Populer