Yazılım motoru (İngilizce: Software 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.
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.
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.
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.
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.
Aşağıdaki kodu yazarak motorun derlemesi komutu verildiğinde resimdeki sonuç ortaya çıkar.
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){Console.WriteLine("Merhaba Dünya !");Console.ReadLine();}}}