İçeriğe atla

Yazılım motoru

Kontrol Edilmiş
Microsoft Visual C# 2010 Express yazılım geliştirme motoru
Embarcadero C++ Builder XE3 yazılım geliştirme motoru

Yazılım motoru (İngilizceSoftware Engine), bilgisayar biliminde bir yazılımın altyapısı, temeli anlamına gelir.[1] Yazılım motorları programı çalıştırabilmek için de kullanılmaktadır. Bu yazılımlar diğer programlardan farklıdır.[2] Bir programın içerisinde çalışırlar veya bir bütün oluştururlar.[1] Yazılım motorları bir tarayıcının içerisinde JavaScript motoru veya bir oyun motoru gibi çeşitli türlere sahiptirler.[1] Web tarayıcısı içerisinde de JavaScript, AJAX gibi dillerde yazılmış eklentilerin çalışmasını sağlarlar.

Amaçları

Yazılım motorları, program yazmak ve oyun yapmak gibi programlama gerektiren alanlarda kullanıcının işini kolaylaştırmak, yapılan hataları tespit edip kullanıcıya bildirmek için geliştirilmiş türlere sahiptir.[3] Yazılım motorları genelde hazır kodlar, animasyonlar ve grafikler içerirler. Bunun sebebi ise kullanıcının işini kolaylaştırmaktır. Örneğin bir yazılım motorunda C# dilinde bir konsol uygulaması projesi başlattığımızda aşağıdaki hazır kod ile açılır.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

Bu kodlar bu programlama dilinde programlama yapılan içeriğin sınırlarıdır. Bunlar hazır olarak başlatılarak kullanıcının hızlı olarak işine odaklanmasını sağlar. Bu bir oyun motorunda ise hazır grafikler ve animasyonlar şeklinde olabilir.

Örnek

Visual Studio programında yandaki C# kodunun hatası.
Bir yazılım motorunda Java çalışması

Bir C# dilinde program yazarken aşağıdaki gibi bir kod yazıldığında program kelimesinin yanında "class" yazılmadığı hatası ve onun sebep olduğu ek hatalar alınır.

using System;
using System.Collection.Generic;
using System.Linq;
using System.Text;

namespace WikipediaCalculator1
{
    program
    {
     static void Main(String[]args)
     {
      int a, b, yuzde;
      Console.Writeline("Yüzde 10'u alınacak Sayı");
      a = convert.ToInt32(Console.ReadLine());

      yuzde = (a/100)*10;
      Console.WriteLine("Yüzde : " + yuzde);
      Console.ReadLine();
      }
    }
}

Galeri

Derleme

Yazılım motorları yazılan kodları kullanıcının kodlamayı bitirip çalıştırma komutu vermesiyle derler. Derleyiciler yazılan kodu bir başka yazılım diline (genellikle makine diline) çevirir ve çalışmasını sağlar.

Örnek

Aşağıdaki kodu yazarak motorun derlemesi komutu verildiğinde resimdeki sonuç ortaya çıkar.

Derleyici sonucu: Merhaba Dünya !
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Merhaba Dünya !");
            Console.ReadLine();
        }
    }
}

Yazılım motoru örnekleri

Ayrıca bakınız

Dış bağlantılar

Kaynakça

  1. ^ a b c Yazılım motoru nedir ? 17 Kasım 2012 tarihinde Wayback Machine sitesinde arşivlendi.(İngilizce)
  2. ^ Yazılım motoru nedir, farkları ? 26 Ocak 2016 tarihinde Wayback Machine sitesinde arşivlendi.(İngilizce)
  3. ^ Oyun motoru nedir ? 30 Kasım 2012 tarihinde Wayback Machine sitesinde arşivlendi.(İngilizce)

İ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.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

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

Visual Basic, Microsoft tarafından, Basic programlama dili üzerinde geliştirilmiş, olay yönlendirmeli, üst seviye, nesne tabanlı ve görsel bir programlama dilidir. Öğrenilmesi de kullanılması da oldukça kolaydır.

Kaynak kodu, yazılımı oluşturan yazıdır. Kaynak kod, herhangi bir yazılımın işlenip makine diline çevrilmeden önce insanların okuyup üzerinde çalışabildiği programlama diliyle yazılmış halidir. Kaynak kod bir tümleşik geliştirme ortamında açılabilir, derlenebilir, çalışabilir kaynak kod dosyalarının tümü birleştirilip, hedef bilgisayarlarda kullanılabilir hale getirilebilir.

ASP.NET, Microsoft tarafından geliştirilmiş olan bir açık kaynak Web uygulama gelişimi teknolojisidir. Dinamik Web sayfaları, Web uygulamaları ve XML tabanlı Web hizmetleri geliştirilmesine olanak sağlar. Aynı işletme tarafından geliştirilen .NET çatısı'nın yazılım iskeleti parçası ve artık işletmece desteklenmeyen ASP teknolojisinin devamını teşkil etmiştir.

ActionScript, Flash geliştiricilerinin sunum seviyesi mantığını tasarlamak için kullandıkları nesne yönelimli programlama dilidir. Actionscript ECMAscript üzerine inşa edilmiştir, ECMAscript JavaScript'in esasını oluşturduğu için birçok geliştirici için Actionscript'i anlamak kolaydır. Actionscript Flash içerik yazarlığı esnasında kullanılan özel aksiyonları destekleyen bazı ek ECMAscript özellikleri de içermektedir

Cephe yönelimli programlama veya ilgiye yönelik programlama, çapraz kesim işlerini bölerek modülerliği artırmayı amaçlayan bir programlama yaklaşımıdır. Bütün programlama yaklaşımlarında kodlar uzadıkça, kodların anlaşılabilirliği çok düşmekte, bazen de içinden çıkılmaz bir hal almaktadır. Programlamanın varlığıyla birlikte bu sorun da hep var olmuştur. Bu sorunla savaşabilmek için sürekli çalışmalar devam etmektedir, bu süreçte ortaya çıkan önemli bir programlama yaklaşımı da Cephe Yönelimli Programlamadır.

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

Oyun motoru, kişilerin veya şirketlerin oyun geliştirmek amacıyla kullandığı ücretli veya ücretsiz olan programlara verilen isimdir. Bu program, esasında kütüphanelerden oluşmuş bir yapıdır. Bu kütüphanelerin içinde bilgisayar programlama dilleri ile tanımlanmış fonksiyonlar, sınıflar vb. veriler bulunmaktadır. Kişi oyun motorunu kullandığında, başkası tarafından önceden tanımlanmış olan bu verileri kullanarak oyun geliştirir. Oyun motorunun geliştiriciye sağladığı fayda; önceden başkası tarafından kodlanarak tanımlanmış olan bu verileri yeniden kodlama zahmetinden kurtarması ve bunun sonucunda daha az kod ve bunun getirdiği daha az karmaşıklıktır, zamandan tasarruf etmesini de sağlar.

XAML, genişletilebilir uygulama biçimlendirme dili. Microsoft'un uygulama arayüzlerinin oluşturulmasını sağlayan tanımlama dili. XAML, geliştiricilerin XML kullanarak tüm .NET kullanıcı arayüz elemanlarının çizimlerini kontrol edebilmelerini sağlar. Her XAML etiketi (tag), özellikleri XML attributeleriyle kontrol edilen bir .NET Framework sınıfına birebir karşılık gelir.

<span class="mw-page-title-main">Merhaba dünya programı</span> Geleneksel acemi bilgisayar programı

Merhaba dünya programı, görsel bir arayüz veya komut satırında "Merhaba dünya!" yazdıran bilgisayar programıdır. Bunun amacı, yeni öğrenilen programlama dilinde basit bir yazı yazmak ve programlama mantığını anlatmaktır.

Çokbiçimlilik, bir türün bir başka tür gibi davranabilme ve bu tür gibi kullanılabilme özelliğidir. Nesne yönelimli programlama dillerinde çokbiçimlilik özelliği ise aynı temel sınıftan türetilmiş olan sınıflarda paylaşılan, başka bir ifadeyle aşırı yüklenen aynı metodun bu sınıflarda farklı şekillerde uyarlanabilmesidir. Nesnenin davranışı çalışma anında belirlendiği için programcılar, çokbiçimlilik özelliği sayesinde nesnelerin türünü önceden bilmek zorunda kalmaz.

<span class="mw-page-title-main">Sınıf (programlama)</span> nesne yönelimli programlamada, bir nesnenin nasıl çalıştığını belirten bir tanım

Sınıf, nesne yönelimli programlama dillerinde nesnelerin özelliklerini, davranışlarını ve başlangıç durumlarını tanımlamak için kullanılan şablonlara verilen addır. Bir sınıftan türetilmiş bir nesne ise o sınıfın örneği olarak tanımlanır. Sınıflar genelde şahıs, yer ya da bir nesnenin ismini temsil ederler. Sınıflar metotları ile nesnelerin davranışlarını, değişkenleri ile ise nesnelerin durumlarını kapsül ederler. Sınıflar hem veri yapısına hem de bir ara yüze sahiptirler. Sınıflar ile nasıl etkileşime girileceği bu ara yüzler sayesinde sağlanır. Örneğin bir sınıf şablonu ile renk özelliğine, tekerleklere ve sür metoduna sahip olan bir araba temsil edebilir.

Bilgisayar programlamada dinamik iletim, altyordam çağrılarının ilişkin altyordam başlangıç adresine dinamik olarak bağlanmasıdır. Bir diğer deyişle, dinamik iletim program metnindeki bir çağrı ile işletilen altyordamın programın çalışması sırasında birbirine bağlanması durumudur. Geri çağrı ve çokbiçimliliğin realize edilmesinde kullanılan bu bağlama yöntemi, yordamsal programlama dillerinde altyordam göstericileriyle gerçekleştirilirken, nesne yönelimli dillerde kalıtlama ve gerçekleştirme ilişkilerinin kullanılmasıyla otomatikman sağlanır. Altyordamların birinci sınıf dil öğesi olarak ele alındığı fonksiyonel programlama dillerinde ise, aynı işlevsellik altyordamların argüman olarak geçirilmesi ile sağlanabilir.

Nesne yönelimli programlama dillerinde arayüz, değişik sınıflardan nesnelerin kategorize edilmesini sağlayan bir soyut tür çeşitidir. Tanımlanmakta olan kategorinin birbirleriyle alakasız sınıfları ortak bir çatı altında toplaması nedeniyle, arayüz tanımları, soyut sınıfların aksine, listeledikleri iletilerin gerçekleştirim ayrıntısı olan herhangi bir bilgi içeremezler. Dolayısıyla, bir arayüz tanımı iletilere karşılık gelen bir altyordam gövdesi veya altalan tanımı içeremez. Bir başka açıdan bakarsak, arayüz tanımında yer alan programlama öğelerinin zaman içinde değişme olasılığı düşük öğeler olması gerekir. Buna göre, arayüz tanımları gerçekleştirimci ile kullanıcının paylaştığı ve sabit olma özelliği bulunan altyordam imzaları ile simgesel sabit tanımlarını barındırabilir.

Soyut sınıf, nesne yönelimli programlamada nesnesi yaratılamayan sınıflara denir. Nesne yaratılamamasının nedeni, sınıfın kullanıcı arayüzünde yer alan bir veya daha çok sayıdaki iletinin gerçekleştirilmemesidir.

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

Processing, dijital sanat ve görsel tasarım toplulukları tarafından programlamanın temellerini görsel bir yaklaşımla öğretmek için kullanılan veya elektronik bir eskiz defteri görevi de görebilen açık kaynaklı bir programlama dili ve tümleşik geliştirme ortamıdır (IDE). 2001 yılında Casey Reas ve Benjamin Fry tarafından başlatılan proje Java üzerine kurulmuş olup daha basit bir grafik programlama modeli ve sözdizimine sahiptir.

Dart, ilk kez Google tarafından geliştirilen ve daha sonraları ECMA tarafından standart (ECMA-408) haline getirilen açık kaynaklı ve genel-amaçlı bir programlama dilidir. Dart dili kullanılarak web, sunucu, mobil uygulamalar ve IoT cihazları geliştirilebilir.

Small Basic, Microsoft'un geliştirdiği ve yayımladığı bir programlama dilidir.

Common Type System (CTS), Microsoft'un .NET Framework'te veri tipi tanımlarının ve bunların belirli değerlerinin bilgisayar belleğinde nasıl temsil edildiğini belirten bir standarttır. Farklı programlama dillerinde yazılan programların kolayca bilgi paylaşmasına olanak sağlamak amaçlanır. Programlama dillerinde kullanıldığı şekliyle bir veri tipi, bir değer kümesinin tanımı ve bu değerler üzerinde izin verilen işlemler olarak tanımlanabilir.