m.kelas-karyawan-ftumj.prestasi.web.id Layanan Informasi 17 Jam
Telp/Fax : 021-8762002, 8762003, 8762004, 87912360
HP/SMS : 081 1110 4824 27, 0812 9526 2009, 08523 1234 000
WhatsApp : 0817 0816 486, 0812 9526 2009
email : _Hubungi Kami__ silahkan klik
Chatting dengan Staf :
ggkarir.com
ggiklan.com
Pilih Bahasa :   ID   EN   Permintaan Katalog / Brosur (GRATIS via POS)   Kelas Karyawan   Reguler
D3 KebidananS1 Akhwal al Syakhsiyyah / Hukum Perdata Islam (Syariah)TV & Radio AsingRumah SakitPeternakanNKRI, KPK, dsbKode POSPHP

   
Cari  
    Integrasi Komputer

    Sebelumnya  (Facebook, Inc. v. StudiVZ Ltd.) (Failure analysis)  Berikutnya    

Factor (programming language)

Factor
Paradigm(s)multi-paradigm: concatenative, stack-oriented
Appeared in2003
DeveloperSlava Pestov
Stable release.95 (August 17, 2012; 6 months ago (2012-08-17))
Typing disciplinestrong, dynamic
Influenced byJoy, Forth, Lisp, Self
InfluencedCat,[1] Concat [2]
OSWindows, Mac OS, Linux, others
LicenseBSD license

Factor is a stack-oriented programming language created by Slava Pestov. Factor is dynamically typed and has automatic memory management, as well as powerful metaprogramming features. The language has a single implementation featuring a self-hosted optimizing compiler and an interactive development environment. The Factor distribution includes a large standard library.

Contents

History

Slava Pestov created Factor in 2003 as a scripting language for a video game.[3] The initial implementation, now referred to as JFactor, was implemented in Java and ran on the Java Virtual Machine. Though the early language resembled modern Factor superficially in terms of syntax, the modern language is very different in practical terms and the current implementation is much faster.

The language has changed significantly over time. Originally, Factor programs centered around manipulating Java objects with Java's reflection capabilities. From the beginning, the design philosophy has been to modify the language to suit programs written in it. As the Factor implementation and standard libraries grew more detailed, the need for certain language features became clear, and they were added. JFactor did not have an object system where you could define your own classes, and early versions of native Factor were the same; the language was similar to Scheme in this way. Today, the object system is a central part of Factor. Other important language features such as tuple classes, combinator inlining, macros, user-defined parsing words and the modern vocabulary system were only added in a piecemeal fashion as their utility became clear.

The foreign function interface was present from very early versions to Factor, and an analogous system existed in JFactor. This was chosen over creating a plugin to the C part of the implementation for each external library that Factor should communicate with, and has the benefit of being more declarative, faster to compile and easier to write.

The Java implementation initially consisted of just an interpreter, but a compiler to Java bytecode was later added. This compiler only worked on certain procedures. The Java version of Factor was replaced by a version written in C and Factor. Initially, this consisted of just an interpreter, but the interpreter was replaced by two compilers, used in different situations. Over time, the Factor implementation has grown significantly faster.[4]

Programming paradigm

Factor is a dynamically typed, functional and object-oriented programming language. Code is structured around small procedures, called words. In typical code, these are 1-3 lines long, and a procedure more than 7 lines long is very rare. Something that would idiomatically be expressed with one procedure in another programming language would be written as several words in Factor.[5]

Each word takes a fixed number of arguments and has a fixed number of return values. Arguments to words are passed on a data stack, using reverse Polish notation. The stack is used just to organize calls to words, and not as a datastructure. The stack in Factor is used in a similar way to the stack in Forth; for this, they are both considered stack languages. For example, below is a snippet of code that prints out "hello world" to the current output stream:

"hello world" print

print is a word in the io vocabulary that takes a string from the stack and returns nothing. It prints the string to the current output stream (by default, the terminal or the graphical listener).[5]

Not all data has to be passed around only with the stack. Lexically scoped local variables let you store and access temporaries used within a procedure. Dynamically scoped variables are used to pass things between procedure calls without using the stack. For example, the current input and output streams are stored in dynamically scoped variables.[5]

Factor emphasizes flexibility and the ability to extend the language.[5] There is a system for macros, as well as for arbitrary extension of Factor syntax. Factor's syntax is often extended to allow for new types of word definitions and new types of literals for data structures. It is also used in the XML library to provide literal syntax for generating XML. For example, the following word takes a string and produces an XML document object which is an HTML document emphasizing the string:

: make-html ( string -- xml )   dup   <XML       <html>           <head><title><-></title></head>           <body><h1><-></h1></body>       </html>   XML> ;

The word dup duplicates the top item on the stack. The <-> stands for filling in that part of the XML document with an item from the stack.

Implementation and libraries

Factor includes a large standard library, written entirely in the language. These include

  • A cross-platform GUI toolkit, built on top of OpenGL and various windowing systems, used for the development environment.[6]
  • Bindings to several database libraries, including PostgreSQL and SQLite.[7]
  • An HTTP server and client, with the Furnace web framework.[8]
  • Efficient homogeneous arrays of integers, floats and C structs.[9]
  • A library implementing regular expressions, generating machine code to do the matching.[10]

A foreign function interface is built in to Factor, allowing for communication with C, Objective-C and Fortran programs. There is also support for executing and communicating with shaders written in GLSL.[5][11]

Factor is implemented in Factor and C++. It was originally bootstrapped from an earlier Java implementation. Today, the parser and the optimizing compiler are written in the language. Certain basic parts of the language are implemented in C++ such as the garbage collector and certain primitives.

Factor uses an image-based model, analogous to many Smalltalk implementations, where compiled code and data are stored in an image.[12] To compile a program, the program is loaded into an image and the image is saved. A special tool assists in the process of creating a minimal image to run a particular program, packaging the result into something that can be deployed as a standalone application.[5][13]

The Factor compiler implements many advanced optimizations and has been used as a target for research in new optimization techniques.[5][14]

References

  1. ^ Diggins, Christopher (2008), "Simple Type Inference for Higher-Order Stack-Oriented Languages", http://www.cat-language.com/Cat-TR-2008-001.pdf
  2. ^ Herzberg, Dominikus; Reichert, Tim (2009), "Concatenative Programming: An Overlooked Paradigm in Functional Programming", http://mitarbeiter.hs-heilbronn.de/~herzberg/Publications/ICSOFT.2009.pdf
  3. ^ Pestov, Slava, "Slava Pestov's corner of the web", http://factorcode.org/slava/
  4. ^ "Concatenative.org wiki: Factor/Implementation History", http://concatenative.org/wiki/view/Factor/Implementation%20history
  5. ^ a b c d e f g Pestov, Sviatoslav; Ehrenberg, Daniel (2010). "Factor: a dynamic stack-based programming language". SIGPLAN Not. (ACM) 45 (12): 43–58. doi:10.1145/1899661.1869637.
  6. ^ Pestov, Slava, "Factor documentation: UI framework", http://docs.factorcode.org/content/article-ui.html
  7. ^ Coleman, Doug, "Factor documentation: Database library", http://docs.factorcode.org/content/article-db.html
  8. ^ Pestov, Slava, "Factor documentation: HTTP server", http://docs.factorcode.org/content/article-http.server.html
  9. ^ Pestov, Slava, "Factor documentation: Specialized arrays", http://docs.factorcode.org/content/article-specialized-arrays.html
  10. ^ Coleman, Doug; Ehrenberg, Daniel, "Factor documentation: Regular expressions", http://docs.factorcode.org/content/article-regexp.html
  11. ^ Pestov, Slava, "Overhauling Factor's C library interface", http://factor-language.blogspot.com/2010/07/overhauling-factors-c-library-interface.html
  12. ^ Pestov, Slava, "Factor's bootstrap process explained", http://factor-language.blogspot.com/2010/01/factors-bootstrap-process-explained.html
  13. ^ Pestov, Slava, "On shaking trees", http://factor-language.blogspot.com/2008/07/on-shaking-trees.html
  14. ^ Ehrenberg, Daniel (2010), "Closure elimination as constant propagation", http://factorcode.org/littledan/abstract.pdf

External links

    Sebelumnya  (Facebook, Inc. v. StudiVZ Ltd.) (Failure analysis)  Berikutnya    





Tags: Factor (programming language), Integrasi Komputer, 2243, Factor (programming language) Factor Paradigm(s) multi paradigm : concatenative stack oriented Appeared in 2003 Developer Slava Pestov Stable release, 95 (August, #160;17, #160;2012 ; 6 months ago, #160;( 2012 08 17 ) ) Typing discipline strong dynamic Influenced by Joy Forth Lisp Self Influenced Cat [ ] Concat [ 2 ] OS Windows Mac OS Linux others License BSD license factorcode.org Factor is a s, Factor (programming language), Bahasa Indonesia, Contoh Instruksi, Tutorial, Referensi, Buku, Petunjuk, Program perkuliahan eksekutif, Perkuliahanparalel, Program kelas karyawan, Otak, Kelas wiraswasta, Otogiga, Kelaskaryawan, Otosingo, Program kuliah ekstensi m.kelas karyawan ftumj, prestasi.web.id
 Download Katalog    Al Quran Online    Lowongan Karir    Daftar Online    Latihan Soal Try Out
Kelas Sore/Malam (Hybrid)
Koleksi Jenis Foto
Pendaftaran Mahasiswa/i
Program Studi
Layanan + Download
UU Sisdiknas & Pemerintah Mendukung
Kelas Sore/Malam
(Hybrid)
Jaringan Web Perkuliahan Karyawan
Jaringan Web Kelas Shift
Jaringan Web Utama
Jaringan Web Kuliah Reguler Siang
Jaringan Web Program Pascasarjana (Magister, S2)

 Program Kuliah Reguler Siang    Referensi Informatika    Bermacam2 Perdebatan    Program Kuliah Blended di 112 PTS Terbaik    Program S2 (Magister)    Waktu Sholat    Semua Referensi Bebas    Semua Iklan    Perkuliahan Wiraswasta    Kelas Shift    Tips & Trik Psikotes    Pengajuan Beasiswa    Program Perkuliahan Bebas Biaya
Link Khusus ke
PTS Terakreditasi & Terkemuka
Penyelenggara Program S1, D3, S2

(silakan klik di bawah ini)
STMIKMJ - STMIKMJ Jakarta
IGI - STIE IGI Jakarta
STTM Cileungsi - STIE Cileungsi
STIE WP - STIE Widya Persada
UPRI - UPRI Makassar
STEI - STEI Yogyakarta
STIE - Hidayatullah Depok
STEBI - Bina Essa
P2KKMPoliteknik Aisyiyah

P2KKMUMPTB Lampung
P2KKMSTIT Al-Hikmah Lampung

P2KKMUniv.Amir Hamzah
P2KKMUSM Indonesia
P2KKMUniv. Al-Azhar Medan
P2KKMUniversitas Deli Sumatera

P2KKMUniv. Muh. Palangkaraya

P2KKMSTIT Nur Ahadiyah

P2KKMUniv. Nahd. Ulama Kalbar

P2KKMUniv. Nahd. Ulama Kaltim

Langsa -- Aceh :
P2KKMUSCND Langsa

P2KKMUniv. Ubudiyah Indonesia

P2KKMSTIT Hidayatullah
P2KKMIAI Abdullah Said

P2KKMUniv. Pejuang Rep. Ind.
P2KKMUniv. Teknologi Sulawesi
P2KKMUniv. Cokroaminoto Makassar
P2KKMITeKes Tri Tunas Nasional

P2KKMUniv. Patria Artha

P2KKMUniv. Nusantara, Manado
P2KKMSTIE Pioneer Manado
P2KKMUniversitas Parna Raya Manado

P2KKMUniversitas Boyolali

P2KKMUniversitas Duta Bangsa
P2KKMPoliteknik Harapan Bangsa Surakarta
P2KKMPoliteknik Santo Paulus Surakarta

P2KKMUNIBABWI

P2KKMUniv. Muhammadiyah Smrg
P2KKMUNDARIS Semarang
P2KKMUNAKI Semarang
P2KKMUPGRIS Semarang
P2KKMUniv. IVET Semarang
P2KKMSTIE Cendekia

P2KKMUNUGHA Cilacap

P2KKMUniv. Muhammadiyah Sby
P2KKMSTIE Pemuda Sby
P2KKMIKIP Widya Darma Sby
P2KKMSTIE Widya Darma Sby
P2KKMSTIE ABI Surabaya
P2KKMUNUSA Surabaya
P2KKMUniv. Widya Kartika
P2KKMSTAI Al Akbar Surabaya

P2KKMUniv. Kahuripan Kediri

P2KKMSTAI Muhammadiyah Tulungagung

P2KKMSTIKI Malang
P2KKMSTIE INDOCAKTI
P2KKMSTIE Al Rifa'ie

P2KKMSTIA Bayuangga
P2KKMSTAI Muhammadiyah Probolinggo

P2KKMUniversitas Moch. Sroedji

P2KKMSTEI JOGJA - STEI Yogyakarta
P2KKMSTIE Mitra Indonesia
P2KKMSTiPsi
P2KKMSTAI Terpadu Yogyakarta
P2KKMUniversitas Mahakarya Asia

P2KKMSTIE Hidayatullah
P2KKMSTIE - GICI A
P2KKMSTIE - GICI A


P2KKMSTMIK-MJ - STMIK Muh. Jkt.
P2KKMUNKRIS - Krisnadwipayana
P2KKMSTT Bina Tunggal - Bekasi
P2KKMSTT Duta Bangsa - Bekasi
P2KKMSTIE - GICI C
P2KKMSTEBI Global Mulia
P2KKMUniversitas Pelita Bangsa
P2KKMUniversitas Indonesia Mandiri
P2KKMPoliteknik Bhakti Kartini

P2KKMSTMIK-STIKOM Bali
P2KKMPOLNAS Denpasar
P2KKMUniversitas Bali Dwipa
P2KKMPoltek Ganesha Guru Singaraja

P2KKMSTIE Ganesha
P2KKMSTT Yuppentek
P2KKMITB Ahmad Dahlan
P2KKMUniv. Tangerang Raya
P2KKMSTIA Maulana Yusuf
P2KKMSTIH Gunung Jati
P2KKMSTIE PPI Balaraja

P2KKMUNSUB - Universitas Subang

P2KKMSTIT Al-Hidayah Tasikmalaya

P2KKMSTIE Walisongo
P2KKMSTT Walisongo

P2KKMUniv. Islam Al-Ihya

P2KKMSTT Mandala, Bandung
P2KKMSTT Bandung
P2KKMSTIE Gema Widya Bangsa
P2KKMUniversitas Insan Cendekia Mandiri
P2KKMUniversitas Halim Sanusi
P2KKMUniversitas Persatuan Islam
P2KKMSTEBI Bina Essa

P2KKMSTT Dr. Khez Muttaqien

P2KKMIMWI Sukabumi

P2KKMSTIH Dharma Andigha
P2KKMUniversitas Teknologi Nusnatara

P2KKMSTT Muhammadiyah Cileungsi

P2KKMISTA - Institut ST Al Kamal
P2KKMSTIE IGI - Inter. Golden Inst.
P2KKM Univ. Mpu Tantular B

P2KKMU M J - Univ. Muh. Jkt

P2KKMFISIP UMJ - Univ. Muh. Jkt.
P2KKMFTan UMJ - Agroteknologi
P2KKMSTIE Trianandra Jakarta
P2KKMSTIE - GICI B
P2KKMSTIE Ganesha
P2KKMSTIMAIMMI Jakarta
P2KKMTanri Abeng University

P2KKMUMHT - Univ. MH. Thamrin
P2KKMFE UMHT - FE MH. Thamrin
P2KKMFASILKOM UMHT
P2KKMUNKRIS - Krisnadwipayana
P2KKMITBU - Inst. Tek. Budi Utomo
P2KKMSTIE Trianandra Jakarta
P2KKMSTMIK Muh. Jkt - Matraman
P2KKMSTMIK Muh. Jkt - Ciracas
P2KKMUniv. Mpu Tantular A
P2KKMSTT Sapta Taruna
P2KKMIAI Al-Ghurabaa Jakarta

P2KKMISIF - Institut Studi Islam Fahmina

P2KKMSTEBI Global Mulia

P2KKMSTIKes Sapta Bakti
P2KKMSTAI Miftahul ulum

P2KKMPoltekkes Kerta Cendekia

P2KKMPelita Raya Institute


KPT Konsultan Pendidikan Tinggi

Kandungan gizi Turi
Makanan yang mengandung Zat Tembaga, Sayur-sayuran yang mengandung Vitamin B5, Riboflavin (vitamin B2), dsb.

Tautan Elok
silakan klik
Konsultan Pendidikan Tinggi
Kumpulan Literatur Dunia

1. Universitas Yarsi Pratama - Universitas Yarsi Pratama - Kampus : Jl. Aria Jaya Santika No. 7, Pasir Nangka, Kec. Tigaraksa, Kab. Tangerang, Banten
2. STIE Widya Persada Jakarta - Sekolah Tinggi Ilmu Ekonomi Widya Persada Jakarta - Kampus :Jl. Hj. Tutty Alawiyah No.486, RW.5, Kalibata, Kec. Pancoran, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12740
umbpts.com  |  bidik-misi.com  |  umb-pts.org  |  umbpts.org  |  iwu.web.id  |  ibmb.web.id  |  info-pts-terbaik.com  |  p2k.nusamandiri.ac.id  |  uin-al-azhaar.web.id  |  p2k.sebi.ac.id  |  unnur.web.id
program-perkuliahan-eksekutif-pkk-lubukpakam.organic.web.id  ᛟ  perkuliahanparalel-pkk-selayar.organics.web.id  ᛟ  program-kelas-karyawan-pkk-buleleng.otak.web.id  ᛟ  kelas-wiraswasta-pkk-sidikalang.otogiga.web.id  ᛟ  kelaskaryawan-pkk-pasaman-barat.otosingo.com  ᛟ  program-kuliah-ekstensi-pkk-kepulauananambas.pa.web.id