İleri Düzey Programlama Dilleri

İleri Düzey Programlama Dillerine Genel Bakış
Bir “yüksek düzey” programlama dili, bir hesaplama gerçekte nasıl uygulanacağının ayrıntılarını özetleyen bir dildir. Programcı, hesaplamanın özünü yakalayan basit bir açıklama yazar ve tanımlayıcı alt tabaka üzerinde yürütülebilen tam bir uygulama oluşturmak için açıklama otomatik olarak genişletilir. Modern dijital bilgisayarlarda bu süreç birçok farklı katmandan geçebilir. Örneğin, bir sütun sütununu ekleyen bir Microsoft Excel elektronik tablosundaki bir girişi düşünün. İfadenin kendisi, “= SUM (C1: C10)” gibi bir şeydir, aritmetik merkezli yüksek seviyeli bir dilde saydam bir şekilde basit bir ifadedir. Excel’de, bu ifade, Excel’deki çeşitli işlevler için bir dizi çağrıda yorumlanır ve süreçte hata işleme gibi örtük davranışlar eklenir. Bu işlevler bazı üst düzey dilde yazılmıştır ve daha sonra Excel’in çalıştığı bilgisayarda çalışabilen makine koduna derlenmiştir. . İşlemci, işlemcinin halihazırdaki durumunda daha verimli çalışmak için kodu yeniden yapılandırdığı için, bu makine kodu başka bir yorum katmanından geçmektedir.
Yüksek seviyeli dillerin ardındaki düşüncenin özü şudur:
Bir mühendislik alanı olgunlaştıkça, tasarımın alt problemlerine yeterince iyi çözümler bulmak rutin hale gelir. Son derece rutin problem çözme, daha sonra yetenekli mühendislerin bilgisini bir yazılım parçası haline getirerek otomatikleştirilebilir. Tasarım sürecinin münferit parçalarına yönelik yazılım çözümleri, daha sonra insan müdahalesine ihtiyaç duymadan, üst düzey tanımlardan çalışma uygulamalarına geçiş yapan eksiksiz bir araç zinciri oluşturmak için birbirine bağlanabilir. Programcının uygulama detaylarından ayrılması üç önemli faydaya sahiptir: Erişilebilirlik: bir sistem kurmak için daha az bilgi gereklidir, çünkü gerekli bilginin çoğu yazılımda yakalanmıştır. Ölçeklenebilirlik: rutin tasarım çalışması otomatik olduğundan, daha büyük ve daha karmaşık sistemler oluşturmak ve aynı programları farklı platformlarda yeniden kullanmak mümkündür. Güvenilirlik: otomatikleştirilmiş tasarımın yönleri artık programcı hatasına tabi değildir; Yazılım ayrıca programcının üst düzey tasarımında yaygın hataları kontrol edebilir. Elektronik bilgisayarlarda, yüksek seviyeli diller çok başarılı oldu ki, birkaç kişi üst düzey bir dil dışında hiç bir şeyi kullanmıyor. Biyo-moleküler sistemlerin programlanmasında, yüksek seviyeli diller ortaya çıkmaya başlıyor.
Bu bölümün amaçları için, biyo-moleküler sistemler için, biyolojik parçaların seçiminin rutin olarak belirtilmemiş bir şekilde bırakılabildiği herhangi bir sistem tanımlama dili olarak yüksek düzeyde bir dil tanımlayacağız. Öncelikle in vivo biyomoleküler hesaplama içinprogramlama dillerine odaklanacağız, dört temsili dili gözden geçireceğiz: GenoCAD, Eugene, GEC ve Proto. Karşılaştırma ve anlamayı kolaylaştırmak için, her bir dili basit bir örnek problemine uygularız:
Küçük moleküllü aTc veya IPTG sinyallerinden herhangi biri mevcut olduğunda, ancak her ikisi de mevcut değilse, yeşil floresan proteini (GFP) ekspresleyin. Bölümün sonunda, biyo-moleküler bilgisayar sistemleri için ilgili diğer yüksek seviye tasarım araçlarının kapsamını da gözden geçiriyoruz. 2. GenoCAD GenoCAD (www.genocad.org), formal gramerin temeli üzerine inşa edilen sentetik biyoloji için en eski CAD araçlarından biridir. Bu bölümde, gramerlerin temelleri, GenoCAD altındaki teorik temeller ve ayrıca GenoCAD web servisi kullanılarak programların nasıl oluşturulduğuna dair kısa bir eğitim verilmektedir. Resmi dil ve Sözdizimsel Model Resmi bir dil, iletişim amacıyla bilgi kodlayan bir Σ alfabesinden türetilmiş (muhtemelen sonsuz) dizelerden oluşur. İngilizce ve Çince doğal dilleri, bilgisayar dillerini (ör. C ve HTML) ve matematik dillerini (ör., Ilk sıra mantığı) içeren birçok dil türü vardır. Bununla birlikte, bir dilin alfabesi üzerindeki tüm dizeler aslında yalnızca kendi kurallarına uyanlar değil, o dile aittir. Bir dilbilgisi, bir dilin sözdizimini (izin verilen yapısını) belirten sonlu bir kural kümesidir.
İleri Düzey Programlama Dillerine Genel Bakış
Bir dilbilgisi G dört bileşen içerir: Sonlu olmayan N terminal uçlu simgeler kümesi. N’den ayrılan sonlu bir set Σ terminal sembolü. Her bir kural α → form biçimindedir, α ve β’nin her ikisi de sembol dizisidir ve a en az bir sembol içerir. Daha resmi olarak, bir yeniden yazma kuralı (Σ ∪ N) ∗ N (Σ ∪ N) ∗ → (Σ ∪ N) ∗ olarak gösterilebilir, burada ∗ Kleene yıldız operasyonu (önceki ifadenin sıfır veya daha fazla kopyası anlamına gelir) ) ve set ayarlanmış birleşim işlemidir. Başlama sembolü olan seçkin bir sembol S ∈ N. 1950’lerde Chomsky, dilbilgisel modellerini, kendi üretim gücünü yansıtan, onların ifade edici gücünü yansıtan dört sınıfa ayırdı [Chomsky, 1956]. Özetle, biyolojik dizilerin temsili olarak bir dilbilgisel model sınıfının seçilmesi, ifade ve derleme karmaşıklığı arasındaki bir farktır. GenoCAD bir Bağlamsız dilbilgisi (CFG) kullandığı için, yalnızca CFG’nin matematiksel tanımını vereceğiz. Resmi dillere ve Chomsky hiyerarşisine iyi bir genel giriş de bulunabilir [Sudkamp, 2006]. Bağlamsız dilbilgisi, A → α formundaki herhangi bir üretim kuralına izin verir. Sol taraf sadece terminal olmayan tek bir sembol A’dan oluşur ve sağ taraf A ∈ N ve α ∈ (N ∪Σ) ∗ olduğu herhangi bir dize olabilir. Bağlamdan bağımsız bir dilbilgisi için karşılık gelen otomat, aşağı açılan bir otomatikmandır. Bağlamdan bağımsız bir dilbilgisi tanımak için hesaplama karmaşıklığı polinomdur. GenoCAD, molekül biyolojisinin birçok jenerik tasarım ilkesini, içerikten bağımsız bir dilbilgisi biçiminde formüle eder. Biyolojik parçalar terminallerdir, çoklu parçaları oluşturan cihazlar / sistemler ise dilbilgisinde terminal olmayanlar olarak sınıflandırılır.
Bu derlemede, sadece küçük bir dilbilgisi sunulacaktır:
başka yerlerde iki tane daha kapsamlı gramer yayınlanmaktadır. Operon ve Cistron karmaşık cihazlardır. Eugene Eugene (www.eugenecad.org) biyolojik parçaların koleksiyonlarını tanımlayarak, tanımlayarak ve birleştirerek biyolojik sistemlerin oluşturulmasını yansıtan insan tarafından okunabilir, uygulanabilir bir tanımlamadır. Eugene, Elektronik Tasarım Otomasyonu (EDA) endüstrisinin (örn. Verilog, VHDL) dillerinden, sentezlenebilen (otomatik olarak dönüştürülebilen) biyolojik tasarım ağı listesi (soyut bileşenlerin bir araya getirilmesi ve bunların bağlantıları) sağlama kabiliyetinden esinlenmiştir. Bir tasarım kütüphanesinde fiziksel uygulamaların koleksiyonlarına. Eugene, bileşenleri hiyerarşinin farklı seviyelerinde açıkça ele alarak, sentetik biyoloji “bölüm” ve “aygıt” (çoklu temel parçaların birleşiminden oluşan) hiyerarşisi seviyelerini köprüler. Bu ilişkiler, Eugene’nin veri tiplerine açıkça yansır: Cihaz ve Parça bildirimleri düşük seviyeli uygulama ayrıntılarını soyutlar (Özellik beyanları tarafından yakalanır), yine de daha düşük seviyeli bilgileri, belirli tasarım bilgilerinin aşağıdakileri içeren Kısmi Örnek nesnelerle kapsülleme yoluyla yakalama kabiliyetini sağlar. Özel Özellikler Bu özellikler biyolojik parça ve cihaz özelliklerinde esneklik ihtiyacını ele almaktadır. Ayrıca, Eugene, biyolojik parçaların depolarından bilgi toplayan ve bu bilgiyi Eugene “başlık dosyaları” olarak içine alan Clotho gibi tasarım araçlarıyla doğrudan bağlantı kurabilir. Bu dosyalar belirli bir “tasarım kitaplığı” için belirli Parça parçalarını ve Özelliklerini tanımlar. Bu başlık dosyaları modülerdir ve Eugene Device bildirimlerini değiştirmeden farklı dosyaların eklenmesiyle bir tasarım kitaplığından diğerine değişikliklere izin verir. Eugene de yorumlanmış bir dil olduğundan, bir yürütülebilir özelliktir. Çalışma zamanında, Eugene yorumlayıcısı, çalışma zamanında yeni Aygıtlar oluşturmak için belirli işlevlerle birleştirilmiş koşullu yürütme ifadelerine (ör. If) bağlı olarak Aygıt koleksiyonları oluşturabilir. Bu özellikler, çok çeşitli farklı biyolojik parçalardan cihazların kombinatoryal keşfine duyulan ihtiyacı ele almaktadır. Örneğin, belirli bir Tarafın Mülkiyeti belirli bir eşiği karşılamıyorsa, koşullu ifadenin gövdesi, bu Kısmı, şartları karşılayan biriyle değiştirmek için kullanılabilir. Son olarak, Eugene tasarım kurallarının yaratılmasına ve onaylanmasına izin verir. Bir Kural, bir Cihazdaki çeşitli Parçalar arasındaki ilişkiyi doğrudan uygular ve bir yapının başarılı bir şekilde oluşturulmasını sağlamak için gerekli olan doğrulama mekanizmalarını sağlar.
Bu kurallar, dilde önceden tanımlanmamıştır, ancak kullanıcı tarafından zengin kural ilkelerinden oluşan bir kümeden oluşturulmuştur. Bu esneklik, kullanıcıların çeşitli kural kombinasyonlarını tanımlamasına ve onaylamasına izin verir. Eugene Constructs dil, önceden tanımlanmış beş ilkel türünü destekler. Bunlar txt, num, boole, txt [] (metin dizilerinin bir listesi) ve num [] (sayılar listesi) ‘dir. Özellikler ilgi özelliklerini temsil eder ve ilkellerle tanımlanır ve parçalar ile ilişkilidir. Veri tipi Kısım, MIT Registry’nin BioBrickTMin’i gibi standart bir biyolojik parçayı temsil eder. Parça tanımları herhangi bir parça oluşturmaz, bunun yerine hangi parçaların yapılabileceğini belirtir. Bu bölümlerin beyanları önceden tanımlanmış Parçaların örneklerini oluşturur ve özelliklerine değer atar. Cihaz ifadeleri, standart biyolojik parçaların ve / veya diğer cihazların düzenli bir kompozitini temsil eder. XOR geçidinin ana özelliği, yeşil floresan proteinin (GFP) sadece, A veya B giriş sinyallerinden biri mevcut olduğunda üretilmesidir, ancak her ikisi de değildir. Kullanıcı GEC’deki XOR kapı tasarımını derlediğinde, tasarım kısıtlamalarını karşılayan bir dizi olası çözümle sunulur. Kullanıcı daha sonra en uygun olanı seçmek için çözümlerin her birini simüle edebilir. Tasarım, transkripsiyon, translasyon veya transkripsiyon faktörü bağlanması gibi belirli oranların belirtilen bir aralık içinde yer alması gerektiğini belirterek daha da geliştirilebilir. Bu, olası olası çözümlerin ilkini azaltmaya yardımcı olur. XOR tasarımı söz konusu olduğunda, çözümlerden biri GFP’nin hem A ve B girdilerinin yokluğunda bile üretildiği bir koşulu temsil eder. Bunun nedeni, promoterlerden birinin transkripsiyon faktörü PA ile baskı oranının oranından daha az olmasıdır. transkripsiyon faktörü PB ile aktivasyonun, yani aktivasyonun inhibisyonu aştığı anlamına gelir. Bu istenmeyen çözelti, inhibitör transkripsiyon faktörlerinin aktivatör transkripsiyon faktörlerinden daha sıkı bir şekilde bağlandığı kısıtının eklenmesiyle ortadan kaldırılabilir.
İleri Düzey Programlama Dillerine Genel Bakış
Belirli bir tasarımı simüle etmek için GEC, GEC veri tabanlarındaki parça özellikleri ve reaksiyonları ile ilişkili oranları kullanarak tasarımı otomatik olarak bir dizi kimyasal reaksiyona sokar. XOR kapı tasarımı için reaksiyon seti, Şekil 1.7, sayfa 21’de özetlenmiştir. Tepkiler için derleme ile ilgili ek ayrıntılar [Pedersen ve Phillips, 2009a] ‘da sağlanmıştır ve aracın bir ekran görüntüsü Şekil 1.6’de gösterilmiştir. 20. Bu bölümde, örnek olarak basit bir XOR kapısı kullanarak GEC’deki genetik cihazların tasarımını gösterdik. Bununla birlikte, daha karmaşık cihazların etkili bir şekilde tasarlanması için, münferit parçaların özelliklerini karakterize etmek için daha fazla çalışmaya ihtiyaç duyulmaktadır. Şu anda sadece birkaç parça iyi karakterize edilmiş ve birçok reaksiyon oranı bilinmemektedir, dolayısıyla burada tarif edilen kısım ve reaksiyon veri tabanları henüz büyük ölçekte mevcut değildir. GEC, bu tür veri tabanlarının potansiyel bir tüketicisi olarak, bunların biyolojik cihazlar hakkındaki bilgilerle nasıl tasarlandığını ve doldurulduğunu yönlendirmeye yardımcı olabilir.