İçeriğe atla

Düşük seviye programlama dili

Bilgisayar Biliminde düşük seviyeli programlama komut kümesinde hiç soyutlama imkânı vermeyen ya da az bir soyutlama sağlayan programlama dili anlamına gelir. Buradaki "düşük" kelimesi programlama diliyle makine dili arasında bulunmayan ya da az bulunan bir soyutlama imkânını temsil eder. Bu yüzden düşük seviyeli programlama dilleri "donanıma yakın" programlama olarak da anılır.

Düşük seviyeli programalama dilleri herhangi bir derleyiciye ya da yorumlayıcıya ihtiyaç duymadan direkt olarak kullanılmak üzere yazıldıkları işlemciler tarafından çalıştırılabilirler. Bu yüzden işlemciden işlemciye farklılık gösterirler.

Karşılaştırma yapmak gerekirse, yüksek seviyeli bir programlama dili programın geliştirilmesinde kullanılması gereken bilgisayarın yapısına bağlı semantik uygulamaları ortadan kaldırır, böylelikle bir programın geliştirilme aşaması daha kolay ve anlaşılır hale gelir.

İkinci Nesil

İkinci nesil programala dili ya da 2GL, çevirici bir dildir. Bu programalama dili direkt olarak mikroişlemciyi hedeflemese de bu dilde kod yazan bir programcı mikroişlemcilerin bazı işlevlerini (işleçler ya da kayıt noktaları gibi) bilmelidir, işte bu yüzden ikinci seviye olarak kabul görmüştür. Böylelikle makine kodu ve çevirici kod birbiri içinde dönüştürülebilecektir.

Örnek: Aynı Fibonacci Dizisini hesaplama işlemi bu sefer MASM sözdizimiyle x86 çevirici dilinde yazılmıştır.

fib:
    mov edx, [esp+8]
    cmp edx, 0
    ja @f
    mov eax, 0
    ret
    
    @@:
    cmp edx, 2
    ja @f
    mov eax, 1
    ret
    
    @@:
    push ebx
    mov ebx, 1
    mov ecx, 1
    
    @@:
        lea eax, [ebx+ecx]
        cmp edx, 3
        jbe @f
        mov ebx, ecx
        mov ecx, eax
        dec edx
    jmp @b
    
    @@:
    pop ebx
    ret

Ayrıca bakınız

  • Yüksek seviyeli programlama dilleri
  • Çok yüksek seviye programlama dilleri

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">C♯</span> programlama dili

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like bir deneyim sunar.

Fortran, özellikle sayısal hesaplama ve bilimsel hesaplama için uygun olan genel amaçlı, yordamsal, zorunlu programlama dilidir.

<span class="mw-page-title-main">Derleyici</span> kaynak kodunu bilgisayarın işleyebileceği koda dönüştüren program

Derleyici, kaynak kodu makine koduna dönüştüren yazılımdır. Bir programlama dilinin derleyicisi, o programlama dili kullanılarak yazılmış olan kodu hedef işlemci mimarisine göre uygun şekilde makine koduna derler ve genellikle çıktı olarak yürütülebilir dosyanın oluşturulmasını sağlar. Bu eyleme derleme denir. Bir başka ifadeyle derleyici, bir tür yazı işleyicidir; girdi olarak yazı alır ve çıktı olarak yazı verir.

<span class="mw-page-title-main">Mikrodenetleyici</span>

Mikrodenetleyici bir VLSI entegre devre çipinde küçük bir bilgisayar'dır. Mikrodenetleyici, bellek ve programlanabilir giriş/çıkış çevre birimleri ile birlikte bir veya daha fazla CPU kapsar.

Mikroprogramlama, kontrol işaretlerini oluşturan ikili sayıların mikrokomutlar yazılarak oluşturulmasıdır. Bu sembolik mikroprogram, ikili kontrol işaretlerine mikroassembler anlamında dönüştürülür. Mikroprogramlama yazılım ile donanım arasındaki özyinelemeyi sağlayan bilgisayarın en gerekli parçasıdır. İşlemcinin denetim birimini tasarlamak için yazmaç aktarımı işlemleri düzeyinde programlama yapılması yöntemidir. Birçok işlemcide mikroprogramlama makine kodu buyruklarını doğrudan donanım üzerinde yürütür. Fakat bazı yeni mimarilerde mikroprogramlama uygulanmaz onun yerine yazılım, dijital mantık düzeyindeki işlemleri doğrudan çalıştırır.

<span class="mw-page-title-main">Merkezî işlem birimi</span> bir bilgisayar programının talimatlarını, talimatlar tarafından belirtilen temel aritmetik, mantıksal, kontrol ve giriş/çıkış (G/Ç) işlemlerini gerçekleştirerek yürüten ve diğer bileşenleri koordine eden bir bilgisayar içindeki elektro

Merkezî işlem birimi, dijital bilgisayarların veri işleyen ve yazılım komutlarını gerçekleştiren bölümüdür. Çalıştırılmakta olan yazılımın içinde bulunan komutları işler. Mikroişlemciler ise tek bir yonga içine yerleştirilmiş bir merkezî işlem birimidir. 1970'lerin ortasından itibaren gelişen mikroişlemciler ve bunların kullanımı, günümüzde MİB teriminin genel olarak mikroişlemciler yerine de kullanılması sonucunu doğurmuştur.

<span class="mw-page-title-main">Nesne yönelimli programlama</span> nesne kavramına dayalı programlama paradigması

Nesne yönelimli programlama veya kısaca NYP, Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır. NYP destekleyen programlama dilleri yüksek seviye diller olarak adlandırılır.

ABAP,İngilizce Advanced Business Application Programming kelimelerinin baş harflerinden oluşan bir kısaltmadır ve Alman yazılım şirketi SAP tarafından geliştirilen üst seviye bir nesne tabanlı programlama dilidir. SAP'nin iş uygulamaları geliştirmek için kullanılan NetWeaver platformunun parçası olan Web Uygulama Sunucusu'nu programlamak amacıyla kullanılır. Sözdizimi COBOL'a benzemektedir.

İndirgenmiş Buyruk Küme Bilgisayar, işlemci tasarım alanında 1980'li yıllarda önerilen ve giderek CISC'in yerini alan bir buyruk kümesi mimarisidir.

<span class="mw-page-title-main">Intel 8086</span> Intel tarafından geliştirilmiş bir mikroişlemci yongasıdır

8086 Intel tarafından geliştirilmiş, x86 mimarisi 'nin gelişmesine yol açan 16-bit mimarisinde bir mikroişlemci yongasıdır. Intel tarafından 8086 tasarımının geliştirmesine 1976 yılı baharında başlanmış ve 1978 yılı yaz aylarında ilk çip piyasaya sürülmüştür. 1979 yılında piyasaya sürülen Intel 8088, daha ucuz ve az sayıda çevre birimi kullanımına olanak veren, ayrıca IBM PC tasarımında kullanılan 8254 CTC, 8255 PIO ve 8259 PIC gibi 8080-ailesi çevre birimleri ile uyumlu olacak şekilde 8-bitlik bir data bus eklenerek hafifçe modifiye edilmiş bir versiyondur. İlave olarak daha basit ve ucuz PCB tasarımı gerektirmekte ve daha az sayıda DRAM çipine gereksinim duymaktadır. Intel 8088 orijinal IBM PC tasarımında kullanılan işlemci olması özelliğiyle de kayda değerdir.

<span class="mw-page-title-main">PowerPC</span>

PowerPC, AIM olarak bilinen Apple-IBM-Motorola ittifakının 1991'de geliştirdiği bir RISC mikroişlemcisidir. Genel olarak kişisel bilgisayarlar içindir. PowerPC merkezi işlem birimleri (CPU) gömülü (embedded) ve yüksek performans işlemcileri olduğu için popüler olmuştur. PowerPC 1990'da AIM' in ve PReP'in temel taşı oldu, fakat mimari Apple'ın Macintosh'unun 1994–2006 modellerinde daha başarılı bulundu.

<span class="mw-page-title-main">Mikroişlemci</span> ana işlem biriminin fonksiyonlarını tek bir yarı iletken tümdevrede birleştiren programlanabilir sayısal elektronik bileşen

Mikroişlemci, işlemci olarak da bilinen, merkezî işlem biriminin (CPU) fonksiyonlarını tek bir yarı iletken tüm devrede (IC) birleştiren programlanabilir bir sayısal elektronik bileşendir.

<span class="mw-page-title-main">Assembly</span> uygulanan işlemlerle programlama dilinin birbirine çok yakın olduğu düşük seviye programlama dilleri

Assembly dili, bir işlemcinin komut kümesi üzerine tanımlanmış alt seviye bir dildir. Assembly dili kolay hatırlanabilir semboller tanımlar ve böylece işlemcinin makina koduna karşılık gelen sayı dizilerinin bilinmesine gerek kalmaz. Assembly dili, platformdan bağımsız yüksek seviyeli programlama dillerinin aksine, işlemci mimarisine bağımlıdır. Tipik uygulamaları; cihaz sürücüleri, alt seviyeli dahili (embedded) ve gerçek zamanlı sistemlerdir. Bır assembly programı assembler kullanılarak makine koduna çevrilir.

<span class="mw-page-title-main">Bilgisayar mimarisi</span>

Bilgisayar mimarisi, en küçüğe ve en başarılıya ulaşmayı hedeflerken aynı zamanda maliyeti de göz önünde bulundurduğu için sanat ve bilimin ortak buluştuğu nokta olarak da tanımlanır. Bilgisayar Mimarisi, bilgisayar parçalarının iç yapıları ve aralarındaki haberleşme bağlantıları ile ilgilidir.

Sözde kod, bilgisayar bilimleri alanında algoritmalar ve programlar oluşturulurken ve aktarılırken kullanılan, günlük konuşma diline benzer ve belli bir programlama dilinin detaylarından uzak anlatımlardır. Programın yapısının ve çalışma mantığının yüksek seviyeli bir biçimde, gerektiği yerde doğrudan doğal dil cümleleriyle, ama yine de bir program yapısı ve akışı içinde anlatılmasıdır. Böylelikle sözde kodu okuyan ya da yazan birisi, programlama dillerinin sözdizim detaylarına dikkat etmek zorunda kalmadan, programın ve algoritmanın çalışma mantığını düşünebilir.

<span class="mw-page-title-main">Çekirdek (bilgisayar bilimi)</span>

İşletim sistemi çekirdeği, kısaca çekirdek (kernel), işletim sistemindeki her şeyin üzerinde denetimi olan merkezi bileşenidir. Uygulamalar ve donanım seviyesindeki bilgi işlemleri arasında bir köprü görevi görür. Çekirdeğin görevleri sistemin kaynaklarını yönetmeyi de kapsamaktadır. Genellikle çekirdek, işletim sisteminin temel bir elemanı olarak, yazılımın fonksiyonunu yerine getirebilmesi için kontrol etmesi gereken kaynaklar için düşük seviye soyutlama katmanı sağlayabilir. İşletim sistemi görevleri, tasarımları ve uygulanmalarına göre farklı çekirdekler tarafından farklı şekillerde yapılır. Sistem açılırken belleğe yüklenir ve sistem kapatılıncaya kadar ana bellekte kalır.

<span class="mw-page-title-main">Java sanal makinesi</span>

Java Sanal Makinesi (JSM), Java platformunun nesne modülü formatı olan class uzantılı sınıf dosyalarının belleğe yüklenip çalıştırılması için gereken hizmetleri sunan bir sistem programıdır ve temel görevinin sınıf dosyalarını yorumlamak olduğu söylenebilir. Ancak, JSM'ni salt bir yorumlayıcı olarak görmek büyük haksızlık olur. Zira, yorumlama ile birlikte JSM'nin şu görevleri de vardır.

<span class="mw-page-title-main">Gömülü sistem</span> Belli bir fonksiyonu yapmaya yönelik bilgisayar sistemi

Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.

<span class="mw-page-title-main">Yale Patt</span>

Yale Nance Patt Austin'deki Texas Üniversitesi'nde Amerikalı elektrik ve bilgisayar mühendisliği profesörüdür. Ernest Cockrell, Jr. Connennial kürsüsünde çalışan Patt 1965'te, tek bir silikon parçası üzerine uygulanan ilk karmaşık mantık kapısı olan WOS modülünü tanıttı. Hem Elektrik-Elektronik Mühendisleri Enstitüsü hem de Bilgi İşlem Makineleri Derneği üyesidir ve 2014 yılında Ulusal Mühendislik Akademisi'ne seçilmiştir.